2013-02-05 82 views

回答

4

在SQL Management Studio中,只需鍵入查詢,然後按Control-L(顯示查詢執行計劃)。在那裏,你將能夠看到是否有任何索引正在使用。 「表掃描」表示索引未被使用。 「索引掃描」意味着使用索引。

7

這實際上比看起來更難 - 即使索引可用,典型的現代數據庫管理系統(MS SQL Server也不例外)有時會執行全表掃描,只是因爲在少量數據上可能會更快。

例子:

更重要的是,在DBMS做出決定可以通過statistics多麼新鮮/準確的影響。

該指數是否使用的最可靠的測試是簡單地與代表性的數據然後看看execution plan填寫你的數據庫。而且不要忘記在查詢的時候計算查詢的實際執行時間!


簡化示例:如果整個表適合單個數據庫頁,它是更快簡單地加載該網頁,並依次通過它,而不是等待用於附加I/O包含索引的頁面。

+1

我無法支持這個答案。作爲一個數據庫管理員來說,這是一個寵壞的事情,因爲它找不到數據不足的開發的SQL代碼(包括檢查執行計劃),因此優化器在生產數據的上下文中選擇了一個完全不同的計劃。測試可以解決這個問題,但它的效率要高得多,需要具有代表性數據量的Dev設備。 – eidgenossen

+0

即使這篇文章已經超過4歲了,我從中學到了很多,我以前不知道。發現它非常有用。 – Ingenioushax