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()等
最後更新:2017-11-05 23:03:36