SQLSERVER對索引的利用及非SARG運算符認識
更新時間:2013年02月17日 17:54:39 作者:
SQL對篩選條件簡稱:SARG(search argument/SARG)當然這里不是說SQLSERVER的where子句,是說SQLSERVER對索引的利用,感興趣的朋友可以了解下,或許本文的知識點對你有所幫助哈
寫SQL語句的時候很多時候會用到filter篩選掉一些記錄,SQL對篩選條件簡稱:SARG(search argument/SARG)
where amount>4000 and amount<6000上面這句就是篩選條件
當然這里不是說SQLSERVER的where子句,是說SQLSERVER對索引的利用在SQLSERVER對于沒有SARG運算符的表達式,索引是沒有用的,SQLSERVER對它們很難使用比較優(yōu)化的做法。
意思是說,如果你的SQL語句中沒有where子句包括非SARG運算符,那么你的SQL語句是不會用到表格中的索引的
下面說一下哪些是非SARG運算符:
非SARG運算符包括
NOT、
<>、
NOT EXISTS、
NOT IN、
NOT LIKE
規(guī)律就是有“NOT” 關鍵字 或者 不等于的意思 基本上利用不了索引
還有一些內部函數,如果使用這些內部函數SQLSERVER也不會用到索引
內部函數,例如:CONVERT(),UPPER()等
復制代碼 代碼如下:
where amount>4000 and amount<6000上面這句就是篩選條件
當然這里不是說SQLSERVER的where子句,是說SQLSERVER對索引的利用在SQLSERVER對于沒有SARG運算符的表達式,索引是沒有用的,SQLSERVER對它們很難使用比較優(yōu)化的做法。
意思是說,如果你的SQL語句中沒有where子句包括非SARG運算符,那么你的SQL語句是不會用到表格中的索引的
下面說一下哪些是非SARG運算符:
非SARG運算符包括
NOT、
<>、
NOT EXISTS、
NOT IN、
NOT LIKE
規(guī)律就是有“NOT” 關鍵字 或者 不等于的意思 基本上利用不了索引
還有一些內部函數,如果使用這些內部函數SQLSERVER也不會用到索引
內部函數,例如:CONVERT(),UPPER()等
您可能感興趣的文章:
- 淺析SQL Server 聚焦索引對非聚集索引的影響
- 淺述SQL Server的聚焦強制索引查詢條件和Columnstore Index
- 淺析SQL Server的聚焦使用索引和查詢執(zhí)行計劃
- 詳解sqlserver查詢表索引
- SQL SERVER 2008 R2 重建索引的方法
- SQLSERVER全文目錄全文索引的使用方法和區(qū)別講解
- SQL_Server全文索引的使用實例演示
- SQL_Server全文索引的用法解析
- SQLSERVER如何查看索引缺失及DMV使用介紹
- sqlserver索引的原理及索引建立的注意事項小結
- sqlserver2005自動創(chuàng)建數據表和自動添加某個字段索引
- SQL Server 數據庫索引其索引的小技巧
- 詳解SQL Server的聚焦過濾索引
相關文章
淺析Sql server鎖,獨占鎖,共享鎖,更新鎖,樂觀鎖,悲觀鎖
以下是對Sql server鎖,獨占鎖,共享鎖,更新鎖,樂觀鎖,悲觀鎖進行了詳細的介紹,需要的朋友可以過來參考下2013-08-08
SQL Server誤區(qū)30日談 第26天 SQL Server中存在真正的“事
嵌套事務可不會像其語法表現的那樣看起來允許事務嵌套。我真不知道為什么有人會這樣寫代碼,我唯一能夠想到的就是某個哥們對SQL Server社區(qū)嗤之以鼻然后寫了這樣的代碼說:“玩玩你們”2013-01-01
SQL Server清除日志文件ERRORLOG和刪除tempdb.mdf
數據庫再使用一段時間后,日志文件會增大,特別是在磁盤容量不足的情況下,更是需要縮減,以下為縮減方法:如果可以停止 SQL Server 服務,那么可以采取更直接的方式來縮減 ERRORLOG 和 tempdb.mdf 文件的大小,2025-03-03

