SqlServer 正確使用索引

2021-09-23 00:17:46 字數 646 閱讀 6556

寫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()等

正確建立 使用索引

集合可以預知是比較小的,不必要建立索引,因為全表掃瞄的非常快,不必要維護索引 可預知每次查詢的結果集合佔比比較大時 30 以上,佔比越大索引速度越慢 就沒有必要建立索引,因為使用索引需要進行2次查詢 查詢條目和根據索引指標去查詢相應的文件 正確選擇的文件字段建立索引,應該選擇字段值基數大的建立索引 ...

正確的使用索引

1.查詢的條件字段不是索引字段,對哪乙個字段建立了索引,就用這個欄位做條件 2.建立索引的時候應該對區分度比較大的列進行建立 1 10以下的重複率比較適合建立索引 3.範圍 範圍越大越慢 範圍越小越快 like a 速度慢 like a 速度快 4.條件列參與計算 使用函式 速度慢 5.and 和 ...

SQLSERVER索引的使用技巧

之前做過一次試驗,當所建立的索引沒有在where條件中應用時,查詢結果需要40多分鐘 而建對索引時,不到30秒,很神奇吧,這就是索引的作用,他就像目錄一樣,可以輕鬆的找到你想要的資料,就像字典,如果沒有目錄,可想其查詢的難度。在總結索引設計的原則時,我們有必要來闡述sqlserver中索引的四種型別...