Sql-Server-2008
sp_Blitz、sp_BlitzCache 或 sp_BlitzFirst 能否確定哪些查詢導致在特定日誌文件上發生主要增長操作?
我目前定期(通過 SQL 作業)記錄 sp_Blitz、sp_BlitzCache 和 sp_BlitzFirst 的輸出。
特定數據庫的日誌文件呈指數增長,我相信我可以從 sp_BlitzFirst 的輸出中看到增長(通過 SizeOnDiskMBgrowth 列)。
但我想知道那些 sp_Blitz… 程序中的任何一個是否也能夠告訴我正在執行的導致大幅增長的查詢,或者至少在這些增長時正在執行哪些查詢,然後我可以做一個鬆散的相關性?
當然,從以下開始:
SELECT TOP 100 * FROM dbo.BlitzCache WHERE CheckDate BETWEEN '2019-02-18' AND '2019-02-19' ORDER BY TotalWrites DESC;
sp_BlitzCache 的輸出包括計劃記憶體中資源最密集的查詢。從該查詢開始,您可以縮小在問題時間跨度內寫入最多數據的查詢。
我比擴展事件更喜歡這種方法,因為 XE 會話只會擷取觸發日誌增長的查詢——這可能不是寫入最多的查詢。(這可能只是壓垮駱駝的最後一根稻草。)
請注意,這些查詢是寫入次數最多的查詢,並且這些數字不會在每次 sp_BlitzCache 執行時重置。通過加入 dbo.BlitzCache 中該查詢的先前執行,您可能需要進行更多探勘,以找出在特定時間跨度內哪些執行最頻繁(或生成最多寫入)。