在 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中文網其他相關文章!