天天看點

使用跟蹤标記檢視過濾統計資訊是否被使用

    在某些情況下,表中資料較多,且分布不均勻的時候,執行計劃的估計行數往往會有很大偏差,是以SQL Server 2008引入了過濾統計資訊,意味着隻對表中的特定資料計算統計資訊。那麼在調優查詢的過程中如何知道語句是否使用了過濾統計資訊呢?SQL Server提供了一個隐藏的跟蹤标記來支援這一過程。下面Demo可以展示如何使用該跟蹤标記。

    我們首先對AdventureWorks的SalesOrderDetail做一個簡單的查詢,代碼如代碼清單1所示。

代碼清單1.一個簡單的查詢

    我們來看對應的執行計劃,如圖1所示。

使用跟蹤标記檢視過濾統計資訊是否被使用

    圖1.估計的行數為264.474實際的行數為328

    是以,針對該特定查詢,我們建立過濾統計資訊,代碼如代碼清單2所示。

代碼清單2.建立過濾統計資訊

    我們再來看執行計劃,如圖2所示。

使用跟蹤标記檢視過濾統計資訊是否被使用

    圖2.應用過濾索引後估計的行數更準了

    那麼,在調優語句的時候,我們想知道該語句是否使用了該過濾統計資訊,則可以通過跟蹤标記9204來檢視,代碼如代碼清單3所示。

代碼清單3.使用跟蹤标記9204

    通過圖3傳回的資訊我們看到過濾統計資訊已經被正确使用。

使用跟蹤标記檢視過濾統計資訊是否被使用

圖3.已經正确使用過濾統計資訊