要查詢SQL Server的歷史執行記錄,可以使用以下方法:
SELECT
creation_time,
last_execution_time,
total_logical_reads,
total_elapsed_time,
execution_count,
st.text
FROM
sys.dm_exec_query_stats AS qs
CROSS APPLY
sys.dm_exec_sql_text(qs.sql_handle) AS st
ORDER BY
last_execution_time DESC
使用SQL Server Profiler:Profiler是一個強大的工具,可以用于監視和分析SQL Server的活動。可以設置跟蹤會話來捕獲執行的查詢,并查看它們的歷史記錄。
使用Extended Events:Extended Events是SQL Server的事件處理程序,可以捕獲和分析SQL Server引擎的活動。使用Extended Events,可以創建事件會話來捕獲執行的查詢,并查看它們的歷史記錄。
CREATE EVENT SESSION QueryHistory
ON SERVER
ADD EVENT sqlserver.sql_statement_completed
(
ACTION (sqlserver.sql_text)
)
ADD TARGET package0.event_file
(
SET filename = 'C:\Path\To\QueryHistory.xel'
)
WITH
(
MAX_MEMORY = 4096 KB,
EVENT_RETENTION_MODE = ALLOW_SINGLE_EVENT_LOSS
);
無論你選擇哪種方法,都可以根據需求選擇適合的查詢方式,并根據查詢結果進行進一步分析。