日期:2014-05-18  浏览次数:20397 次

听闻﹐"一个查询或者一次数据操作命令在一个表上最多可以使用一个索引"﹐真的假的﹖
如题﹐敬请各位高人指点。
假设有语句如下﹕
Select   *   From   TranB   Where   TBDate   > ’2007/8/1’   And   PartCode=’111’   And   TBNo   like   ‘AM%’
在表TranB中﹐TBDate,TBNo,PartCode上分别建有索引﹐上边查询会使用到哪些索引呢﹐一个最适合的﹐还是所有﹖请高手指点﹐谢谢了


------解决方案--------------------
TBDate,PartCode

這兩個會用到索引


TBNo
用在like 語句中,不會用到索引
------解决方案--------------------
主题:假的

Select * From TranB Where TBDate > ’2007/8/1’ And PartCode=’111’ And TBNo like ‘AM%’

将这句,放在查询分析器,按 Ctrl + L,查看查询执行计划。具体会用到哪些索引,我不能确定,但查询分析器会告诉你的。
------解决方案--------------------
TBNo like 'AM% '这样的语句也不能使用索引吗﹖疑惑ing
--------
左匹配可以使用索引
------解决方案--------------------
邹老大书里说的

1 对字段计算
2 模糊查询 LIKE
3 在字段上使用函数
4 避免 '查询不要什么数据,其他都要 '
5 使用 or ,in 时如果其中一个条件没有适合的索引整个条件都不使用索引
------解决方案--------------------
to fa_ge(鶴嘯九天)


TBNo like ‘AM%’索引有效


TBNo like ‘%AM’索引无效