第1个回答 2011-01-24
1, 怎样使用索引?
在sqlserver中暂时没有办法干涉数据库对索引的选择,只能将sql写成符合数据库索引选择规则的形式,尽量避免sqlserver不用索引,比如,不要在索引字段上加函数,不要在索引中用not等;
在oracle中可以使用hint强制数据库走你指定的索引,如下语句将强制oracle使用表aaa上的idx索引。
select /*+ index(aaa idx) */ *
from aaa
where idx = &idx;
2, 索引的创建原则
将选择性较好的列作为前导列,这样会降低数据库对索引的扫描次数;这里的选择时指的是每个不同值选择出来的记录条数。
比如表bbb上存在“姓名”和“性别”两个字段,则姓名字段的选择性就好过性别,因为给出一个姓名,得到的记录条数理论为1 ,而给出一个性别,得到的记录条数应该是总条数的一半。