首頁 >資料庫 >mysql教程 >如何檢索我的 SQL Server 查詢歷史記錄?

如何檢索我的 SQL Server 查詢歷史記錄?

Susan Sarandon
Susan Sarandon原創
2025-01-15 15:16:43764瀏覽

How Can I Retrieve My SQL Server Query History?

在 SQL Server Management Studio (SSMS) 中還原過去的 SQL 查詢

與某些資料庫系統(MySQL、PostgreSQL)不同,SQL Server 不會自動記錄查詢歷史記錄。 因此,檢索過去的查詢需要不同的方法。

檢查快取的執行計畫

如果 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'%something unique about your query%';</code>

請記得將 '%something unique about your query%' 替換為查詢中的獨特部分。

檢查 SSMS 復原檔案

SSMS 意外崩潰後,您可能會在此目錄中找到恢復檔案:

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

第三方工具和伺服器端追蹤

如果上述方法不成功,請考慮以下選項:

  • SSMS 工具包:此加載項提供進階功能,包括查詢歷史記錄日誌記錄(注意:此功能在 SQL Server 2012 及更高版本中可能不是免費的)。
  • 伺服器端跟踪:啟用詳細的事件跟踪,包括查詢執行資料。 這是一種更強大的綜合查詢日誌記錄方法。

改進的查詢統計

若要顯示以上次執行時間排序的快取查詢,請使用此增強型查詢:

<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'%something unique about your query%'
ORDER BY s.last_execution_time DESC;</code>

這提供了最近查詢活動的更有條理的視圖。

以上是如何檢索我的 SQL Server 查詢歷史記錄?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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