閱讀750 返回首頁    go 阿裏雲 go 技術社區[雲棲]


SqlServer 正確使用索引

https://www.cnblogs.com/lyhabc/archive/2013/02/07/2909027.html
https://www.cnblogs.com/lihuali/p/5899255.html
寫SQL語句的時候很多時候會用到filter篩選掉一些記錄,SQL對篩選條件簡稱:SARG(search argument/SARG)

1 where amount>4000 and amount<6000
上麵這句就是篩選條件

當然這裏不是說SqlServer的where子句,是說SqlServer對索引的利用

在SqlServer對於沒有SARG運算符的表達式,索引是沒有用的,SqlServer對它們很難使用比較優化的做法。

意思是說,如果你的SQL語句中沒有where子句包括非SARG運算符,那麼你的SQL語句是不會用到表格中的索引的

下麵說一下哪些是非SARG運算符:

非SARG運算符包括

NOT、
<>、

NOT EXISTS、

NOT IN、

NOT LIKE

規律就是有“NOT” 關鍵字 或者 不等於的意思 基本上利用不了索引

還有一些內部函數,如果使用這些內部函數SQLSERVER也不會用到索引

內部函數,例如:CONVERT(),UPPER()等

123456

最後更新:2017-11-05 23:03:36

  上一篇:go  SqlServer基礎--SQLOS 的任務調度(轉)
  下一篇:go  TSDB之KairosDB:Tag對性能的影響測試