听闻﹐"一个查询或者一次数据操作命令在一个表上最多可以使用一个索引"﹐真的假的﹖
如题﹐敬请各位高人指点。
假设有语句如下﹕
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’索引无效