SQL优化经验谈

1.使用索引查找
  对数据最快进行查找的方法是使用索引,如果要取出其他的列,sql会使用BookMark,索引可以直接在表级应用where子句和连接条件。
  例子:表regisrersys 索引列userid 数据量:2万
        select * from registersys where userid='test01'
        select * from registersys where studentname='test01'
        在执行计划中,1为1.98% 2为98.02%,因为2引起了全表查询  
2。SARG
  SARG(Search Argument)搜索参数,即sql使用索引优化where条件,下面是一些基本原则
  ·and是SARG,但or不是
  ·否定的条件(<> 、!>、 !< 、not exists、not In 、not Like)是不可优化的。
  ·通配符开始的条件是不能使用索引
  ·使用了表达式的条件不能使用索引
  ·where条件中包含了函数,需要表扫描
  ·SQL Expert是个不错的SARG工具
3。关于索引
  ·在一对多的联系中多的一方的外键(如orderdetial中的orderid)建立聚集索引
  ·复合索引中列顺序很关键,把经常检索的列放置在第一个位置
  ·如果表中有聚集索引,那所有的非聚集索引都是包含了聚集索引列的复合索引
  ·不要对只包含少数几个索引值的列设置为索引列,因此bit类型的列不适合做索引列
  ·使用索引优化向导参考进行索引优化
posted @ 2008-07-17 16:02  天生我豺  阅读(527)  评论(1编辑  收藏  举报