首頁 >資料庫 >mysql教程 >如何在 SQL Server Management Studio 中擷取和追蹤查詢歷史記錄?

如何在 SQL Server Management Studio 中擷取和追蹤查詢歷史記錄?

DDD
DDD原創
2025-01-15 15:26:45798瀏覽

How Can I Retrieve and Track Query History in SQL Server Management Studio?

在 SQL Server Management Studio (SSMS) 中追蹤過去的查詢

有時,您需要查看先前在 SSMS 中執行的查詢。 雖然 SSMS 沒有內建的查詢歷史記錄追蹤器,但有一些解決方法。

找出查詢歷史資料

如果 SQL Server 執行個體在執行查詢後尚未重新啟動,則查詢計畫可能仍位於計畫快取中。 試試這個查詢:

<code class="language-sql">SELECT t.[text]
FROM sys.dm_exec_cached_plans AS p
CROSS APPLY sys.dm_exec_sql_text(p.plan_handle) AS t
WHERE t.[text] LIKE N'%<unique_query_identifier>%';</code>

<unique_query_identifier> 替換為您記得的查詢的一部分。

如果 SSMS 崩潰且您遺失了查詢歷史記錄,請檢查這些復原檔案:

<code>C:\Users\<username>\Documents\SQL Server Management Studio\Backup Files\</code>

使用第三方工具和追蹤

要進行持續的查詢歷史記錄監控,請探索 SSMS 工具包等工具。 或者,您可以設定按您的登入名稱或主機名稱過濾的輕量級 SQL Server 追蹤。

使用 sys.dm_exec_query_stats 的詳細查詢歷史記錄

正如 Nenad-Zivkovic 指出的,使用 sys.dm_exec_query_stats 提供更全面的查詢歷史記錄詳細資訊。此查詢將其與其他系統視圖結合起來,並按上次執行時間對結果進行排序:

<code class="language-sql">SELECT t.[text], s.last_execution_time
FROM sys.dm_exec_cached_plans AS p
INNER JOIN sys.dm_exec_query_stats AS s
   ON p.plan_handle = s.plan_handle
CROSS APPLY sys.dm_exec_sql_text(p.plan_handle) AS t
WHERE t.[text] LIKE N'%<unique_query_identifier>%'
ORDER BY s.last_execution_time DESC;</code>

請記得將 <unique_query_identifier> 替換為查詢的唯一部分。

以上是如何在 SQL Server Management Studio 中擷取和追蹤查詢歷史記錄?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn