A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘建法 中级黑马   /  2012-4-23 14:22  /  1589 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 刘建法 于 2012-4-26 13:55 编辑

视频上讲到  “不同的表根据不同进行空间优化”那一般怎么样进行这样的优化那!随着表中数据的增加,今后查询会很慢,我的数据库现在已经很大了快100M ,可能是表有点不合理,一个查询就要等很久,怎么优化那?

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

4 个回复

倒序浏览
查询语句的优化,尽量避免全表扫描,我现在一般都用存储过程,因为他写在数据库,不用编译就可以直接执行,也不用来回调用

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
鲍晨 发表于 2012-4-23 14:45
查询语句的优化,尽量避免全表扫描,我现在一般都用存储过程,因为他写在数据库,不用编译就可以直接执行, ...

它这个select 执行的时候 不就要去表中挨个的匹配where语句中的条件 ?存储过程中也经常用到select语句的这个存储过程中select语句和一般的执行原理一样吗?
回复 使用道具 举报
执行原理肯定是一样的啊,我的意思是在对同一个表进行按条件查询的时候,同一个结果,可能用好几种查询方式都能得到同一个结果,这就有了一个查询效率的问题,要尽量避免子查询,进行select优化,选择查询效率最高的。
存储过程是写在数据库端,在用ADO.NET开发的时候,你的把sql写在程序中吧,这样sql语句就得在数据库和程序之间来回调用,且每执行一次就得编译一次。但是存储过程在数据库端,在创建时已经进行了编译,且每次执行不需要重新编译,只需调用存过程名称
create procedure [dbo].[AddUser]
(
  @username nvarchar(50),
  @password nvarchar(50)
)
as
if exists
(
  select id from [tb_User] where username=@username
)
return 1--添加信息失败
insert into [tb_User]
(
  username,password,registertime
)
values
(
  @username,@password,GETDATE()
)
return 0--添加信息成功

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
学习了谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马