当前位置:  数据库>sqlserver

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

    来源: 互联网  发布时间:2014-08-29

    本文导语:  在sql server中,使用索引可以快速访问到数据库中的信息,这也是优化SQL查询速度最常用也是最有效的方法。 创建了索引后,是不是所有Select语句都会用到索引呢? 当然不是了,不好的SQL语句的写法往往会使SQL引擎无法使用索...

在sql server中,使用索引可以快速访问到数据库中的信息,这也是优化SQL查询速度最常用也是最有效的方法。

创建了索引后,是不是所有Select语句都会用到索引呢?
当然不是了,不好的SQL语句的写法往往会使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

一点小经验,总结一下,分享出来,供大家参考。
在以后遇到sql server索引时,记得留意这些问题哦。


    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Oracle数据字典表Truncate掉导致数据库不可用及对策
  • 网站改版后导致URL改变如何设置301跳转的几种方法
  • 用date命令修改系统时间会导致关机?
  • vs2010下禁用vmware的方法以及解决vmware插件导致vs2010变慢的问题
  • [Microsoft][ODBC SQL Server Driver]连接占线导致另一个 hstmt
  • spring的事务类型及spring和hibernate可能导致的问题分析
  • recvfrom阻塞时间长了,会不会导致服务端程序不灵活?
  • HTML <!DOCTYPE> 标签用法详解及如何解决<!DOCTYPE html>未声明时导致页面无效的问题
  • 【求助】急:Fedora 9 SELinux 配置错误导致启动不了怎么办?
  • 程序导致ubuntu断网
  • 关于zookeeper服务器上运行其他程序时导致session expire
  • 误删libpcre.so.0,导致应用装不了、启动不了,怎么办
  • 等待大侠出手相救,在多线程程序中执行system函数导致CPU利用率不停的增长的问题。
  • [ODBC SQL Server Driver]连接占线导致另一个 hstmt--------100
  • linux网络模块什么时候会导致内核崩溃啊
  • etc下文件设置成777导致sudo命令不能用,求解决
  • 请教:pthread_join( )在等待一个已经退出的线程时为何会导致死锁?
  • 循环发送udp数据导致电脑脱网
  • 求助:函数getpeername()返回的namelen很小,导致获得名字失败是为什么?谢谢!!!
  • 安装Linux 9.0后,导致Win98下无法打开资源管理器的问题。
  • 升级gc3.2后,导致程序运行错误.大家聊聊.
  • 由于把resin设置为开机启动服务,导致不能进入Xwindow!!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3