欢迎来到.net学习网

欢迎联系站长一起更新本网站!QQ:879621940

您当前所在位置:首页 » Sql随手笔记 » 正文

热门阅读

导致SQL Server索引不可用的几种Sql写法

创建时间:2011年09月02日 15:46  阅读次数:(7791)
分享到:
索引我们在SQL中是经常用到的,使用索引可以快速访问到数据库中的信息,是我们优化SQL查询速度最常用也是最有效的方法。

但我们创建了索引后,是不是所有Select语句都会用到索引呢?答案是NO,不好的SQL语句的写法往往会使SQL引擎无法使用索引,从而失去了查询速度上的优势。

下面列出无法使用索引的几种情况,以供大家参考:
(1)对索引列使用了函数或计算
假如表table1的索引列是id,但如下语句会使索引无效
select * from table1 where dbo.fn_fun(id)='xxx'

(2)对索引列使用了Like ‘%X’或Like ‘%X%’
引用上面的表,如下语句也会使索引无效
select * from table1 where id like '%xx%'

(3)在组合索引的第1列不是使用最多的列

(4)在where子句中使用了In(子查询)
如下语句会使索引无效
select * from table1 where id in (select id from table2)

(5)数据类型转换将导致不能利用索引
如下语句会使索引无效
select * from table1 where cast(id as varchar(50))='xxx'

(6)负向比较将导致不能利用索引
如下语句会使索引无效
select * from table1 where 'xxx'=id


以上为小编的个人经验,希望能给大家带来帮助。
来源:.net学习网
说明:所有来源为 .net学习网的文章均为原创,如有转载,请在转载处标注本页地址,谢谢!
【编辑:Wyf

打赏

取消

感谢您的支持,我会做的更好!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

最新评论

共有评论0条
  • 暂无任何评论,请留下您对本文章的看法,共同参入讨论!
发表评论:
留言人:
内  容:
请输入问题 18+52=? 的结果(结果是:70)
结  果: