现在的位置: 首页 > 综合 > 正文

数据库设计与查询语句的优化

2014年01月08日 ⁄ 综合 ⁄ 共 612字 ⁄ 字号 评论关闭

一,设计优化
数据库的设计优化基本上主要是靠索引来进行的。
建立索引的注意事项
   一般来说: 
   ①.有大量重复值、且经常有范围查询(between, >,< ,>=,< =)和order by、group by发生的列,可考虑建立群集索引; 
   ②.经常同时存取多列,且每列都含有重复值可考虑建立组合索引; 
   ③.组合索引要尽量使关键查询形成索引覆盖,其前导列一定是使用最频繁的列。 

   1.多表操作在被实际执行前,查询优化器会根据连接条件,列出几组可能的连接方案并从中找出系统开销最小的最佳方案。连接条件要充份考虑带有索引的表、行数多的表;内外表的选择可由公式:外层表中的匹配行数*内层表中每一次查找的次数确定,乘积最小为最佳方案。 
   2.查看执行方案的方法-- 用set showplanon,打开showplan选项,就可以看到连接顺序、使用何种索引的信息;想看更详细的信息,需用sa角色执行dbcc(3604,310,302)。 
二,Sql优化查询
   优化即where子句利用了索引,不可优化即发生了表扫描或额外开销。 
   1.任何对列的操作都将导致表扫描,它包括数据库函数、计算表达式等等,查询时要尽可能将操作移至等号右边。 
   2.in、or子句常会使用工作表,使索引失效;如果不产生大量重复值,可以考虑把子句拆开;拆开的子句中应该包含索引。 
   3.要善于使用存储过程,它使SQL变得更加灵活和高效。 

抱歉!评论已关闭.