听闻﹐"一个查询或者一次数据操作命令在一个表上最多可以使用一个索引"﹐真的假的﹖

zeng_c_h 2007-09-04 09:31:52
如题﹐敬请各位高人指点。
假设有语句如下﹕
Select * From TranB Where TBDate >’2007/8/1’ And PartCode=’111’ And TBNo like ‘AM%’
在表TranB中﹐TBDate,TBNo,PartCode上分别建有索引﹐上边查询会使用到哪些索引呢﹐一个最适合的﹐还是所有﹖请高手指点﹐谢谢了
...全文
196 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zeng_c_h 2007-09-04
  • 打赏
  • 举报
回复
或许﹐这只是SQL优化后的结果﹖只是个巧合﹖
zeng_c_h 2007-09-04
  • 打赏
  • 举报
回复
主题真的完全错误吗﹖我用SQL 2000对TranB表反复进行测试﹐系统似乎每次真的只使用一个索引列
撸大湿 2007-09-04
  • 打赏
  • 举报
回复
to fa_ge(鶴嘯九天)


TBNo like ‘AM%’索引有效


TBNo like ‘%AM’索引无效
kk19840210 2007-09-04
  • 打赏
  • 举报
回复
邹老大书里说的

1 对字段计算
2 模糊查询 LIKE
3 在字段上使用函数
4 避免'查询不要什么数据,其他都要'
5 使用 or ,in 时如果其中一个条件没有适合的索引整个条件都不使用索引
zeng_c_h 2007-09-04
  • 打赏
  • 举报
回复
To:Limpire(昨夜小楼)
查询分析器显示﹐只使用了PartCode索引,Index Seek部分是这样提示的。
请教指点﹗
dobear_0922 2007-09-04
  • 打赏
  • 举报
回复
TBNo like 'AM%'这样的语句也不能使用索引吗﹖疑惑ing
--------
左匹配可以使用索引
fa_ge 2007-09-04
  • 打赏
  • 举报
回复
對,like 不使用索引
zeng_c_h 2007-09-04
  • 打赏
  • 举报
回复
谢谢楼上两位﹗
TBNo like 'AM%'这样的语句也不能使用索引吗﹖疑惑ing
Limpire 2007-09-04
  • 打赏
  • 举报
回复
主题:假的

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

将这句,放在查询分析器,按 Ctrl + L,查看查询执行计划。具体会用到哪些索引,我不能确定,但查询分析器会告诉你的。
fa_ge 2007-09-04
  • 打赏
  • 举报
回复
TBDate,PartCode

這兩個會用到索引


TBNo
用在like 語句中,不會用到索引

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧