zoukankan      html  css  js  c++  java
  • sql server数据库中索引失效的问题讨论

    有关于数据库中索引失效的问题,网上也有相关的讨论。不过他们是针对oracle数据库进行讨论的。那么在sql server数据库中索引什么时候

    会失效呢。总结了一下,不过我没有经过测试。没测试就没有发言权,这里仅供自己参考。

    首先,所谓失效。并不真的就是这个索引被删除了。而是在这些情况下,DBMS不会检索索引列表了。执行速度和没有这个索引时的速度一样。

    但是再执行另外的一条语句。同样索引可以正常起作用。所以索引的失效是针对某条sql语句的,而不是针对索引本身的。那么在哪些情况下,

    确切的说是在哪类语句执行时索引不起作用呢。总结如下:

    1.索引字段进行判空查询时。也就是对索引字段判断是否为NULL时。语句为is null 或is not null。
      比如:select * from temp where time is null此时就不检索time字段上的索引表了。也就是索引在这条语句执行时失效了。接着再执

    行select * from temp where time = '2010-06-01'此时就会检索索引表了。索引又起作用了。


    2.对索引字段进行like查询时。比如:select * from temp where des like '%王某某'。网上有的例子说like 'xx%'索引起作用。我没试过。

    3.判断索引列是否不等于某个值时。‘!=’操作符。比如:select * from temp where amount != 0.

    4.对索引列进行运算。这里运算包括+-*/等运算。也包括使用函数。比如:
      select * from temp where amount+count>10 此时索引不起作用。
      select * from temp where round(amount)>10 此时索引也不起作用。
     也就是说如果不是直接判断索引字段列,而是判断运算或其它函数处理后的索引列。索引均不起作用。

  • 相关阅读:
    排序算法之归并排序(Merge Sort)
    排序算法之选择排序
    [BUUCTF]REVERSE——firmware
    [BUUCTF]REVERSE——[WUSTCTF2020]Cr0ssfun
    [BUUCTF]PWN——hitcontraining_magicheap
    [BUUCTF]PWN——ciscn_2019_n_3
    [BUUCTF]PWN——[V&N2020 公开赛]easyTHeap
    [BUUCTF]PWN——babyfengshui_33c3_2016
    [BUUCTF]PWN——babyheap_0ctf_2017
    CTFHub[PWN技能树]——栈溢出
  • 原文地址:https://www.cnblogs.com/ajunForNet/p/4170764.html
Copyright © 2011-2022 走看看