Sql-Server

需要擷取統計資訊以進行查詢分析

  • June 23, 2015

需要什麼統計數據從理論上證明 X 查詢比 Y 查詢更好。據我所知,我需要尋找:

  • 查詢經過時間
  • 邏輯讀取
  • 邏輯寫入
  • 物理讀取
  • 物理寫入

我還需要其他統計數據來衡量嗎?我還需要測量嗎

  • 記憶體壓力
  • TempDb 空間使用情況
  • 緩衝區使用
  • 查詢計劃(掃描、搜尋)

得到完美的分析。

從場景來看:

我有兩個查詢,一個是使用索引,一個是沒有索引。我需要顯示哪個查詢表現良好。

我假設您正在談論相同的查詢,使用不同的索引執行。您不能隨意比較 2 個完全不同的查詢,它們執行 2 個不同的事情。正如 Aaron 在評論中所說,我可以將我的 2001 VW 與 2015 Camaro 進行比較,兩者之間沒有關聯,Camaro 可能會跑得更快,但那是因為它的引擎更大。相反,我的大眾汽車將獲得更好的油耗,因為發動機更小。

話雖如此,我使用以下SET選項:SET STATISTICS TIME, IO ON

一旦這些都打開,查詢將踢出所有 CPU 使用率和已執行的讀取。見下文:

在此處輸入圖像描述

然後我使用 www.statisticsparser.com 將數據合併為易於閱讀的格式。這需要處理 CPU/IO。

在此處輸入圖像描述

可以從 SSMS 中的“獲取實際執行計劃”選項中提取執行計劃。執行計劃還將具有記憶體授予(為查詢分配了多少記憶體)。

在此處輸入圖像描述

引用自:https://dba.stackexchange.com/questions/104880