1
我不知道我是不是瘋了,但沒有估計的執行計劃用來顯示你需要什麼索引來提高你的表現?我曾經在我以前的工作中這樣做過,但現在看來我不得不使用調優顧問。我不介意調音顧問,但我以前的做法非常簡單!
感謝
我不知道我是不是瘋了,但沒有估計的執行計劃用來顯示你需要什麼索引來提高你的表現?我曾經在我以前的工作中這樣做過,但現在看來我不得不使用調優顧問。我不介意調音顧問,但我以前的做法非常簡單!
感謝
在這兩個SSMS 2008年和2012年SSMS看到這是工作的罰款都估計和實際的計劃。
下面是一個簡單的例子表明,估計和實際的執行計劃均會顯示在缺少索引:
USE tempdb;
GO
CREATE TABLE dbo.smorg(blamp INT);
GO
INSERT dbo.smorg(blamp) SELECT n FROM
(
SELECT ROW_NUMBER() OVER (ORDER BY c1.object_id)
FROM sys.all_objects AS c1, sys.all_objects AS c2
) AS x(n);
GO
現在強調這一點,並選擇估計的執行計劃,或將實際執行計劃和命中執行:
SELECT blamp FROM dbo.smorg WHERE blamp BETWEEN 100 AND 105;
您應該看到缺少索引建議。你會看到它代表了這裏:
SELECT *
FROM sys.dm_db_missing_index_details
WHERE [object_id] = OBJECT_ID('dbo.smorg');
你可以閱讀更多關於這裏的DMV:
http://msdn.microsoft.com/en-us/library/ms345434.aspx
你也應該調查SQL Sentry Plan Explorer(聲明:我SQL哨兵工作)。這是一個免費的工具,它顯示了估計計劃的缺失索引(如果它們在SQL Server提供的XML中),沒有像SSMS這樣的錯誤(它在多個批次中重複相同的建議,即使批次不提及相同的表格),並生成實際執行計劃而不是將所有結果通過網絡提交給客戶端 - 它只是丟棄它們(因此網絡和數據開銷不計入計劃分析)。
好的,但我很接近。它與我正在尋找的對比使用調優顧問。 – Limey
hmmmm ....我試過了,它沒有顯示需要的索引。我甚至吹響了一個主鍵來確保。 – Limey
實際執行計劃沒有顯示缺少索引?也許是因爲missing_indexes DMV不知道索引丟失,或者因爲計劃太平凡了,優化器不認爲索引會有用。僅僅因爲你的表沒有聚集索引並不意味着每個查詢都會從其中受益。你有沒有手動查看'sys.dm_db_missing_index_details'來查看這個表是否在那裏被提及?這是計劃中的信息來自... –