黑马程序员技术交流社区

标题: 怎么样进行表空间优化? [打印本页]

作者: 刘建法    时间: 2012-4-23 14:22
标题: 怎么样进行表空间优化?
本帖最后由 刘建法 于 2012-4-26 13:55 编辑

视频上讲到  “不同的表根据不同进行空间优化”那一般怎么样进行这样的优化那!随着表中数据的增加,今后查询会很慢,我的数据库现在已经很大了快100M ,可能是表有点不合理,一个查询就要等很久,怎么优化那?
作者: 鲍晨    时间: 2012-4-23 14:45
查询语句的优化,尽量避免全表扫描,我现在一般都用存储过程,因为他写在数据库,不用编译就可以直接执行,也不用来回调用
作者: 刘建法    时间: 2012-4-24 10:09
鲍晨 发表于 2012-4-23 14:45
查询语句的优化,尽量避免全表扫描,我现在一般都用存储过程,因为他写在数据库,不用编译就可以直接执行, ...

它这个select 执行的时候 不就要去表中挨个的匹配where语句中的条件 ?存储过程中也经常用到select语句的这个存储过程中select语句和一般的执行原理一样吗?
作者: 鲍晨    时间: 2012-4-24 10:33
执行原理肯定是一样的啊,我的意思是在对同一个表进行按条件查询的时候,同一个结果,可能用好几种查询方式都能得到同一个结果,这就有了一个查询效率的问题,要尽量避免子查询,进行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--添加信息成功
作者: ︻◣㊣袏邊愛☆    时间: 2012-4-24 18:35
学习了谢谢




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2