溫馨提示×

sqlserver歷史執(zhí)行記錄怎么查詢

小億
1220
2023-12-29 17:45:24
欄目: 云計算

要查詢SQL Server的歷史執(zhí)行記錄,可以使用以下方法:

  1. 使用動態(tài)管理視圖sys.dm_exec_query_stats:這個視圖提供了有關(guān)過去執(zhí)行的查詢的信息,包括查詢文本、執(zhí)行次數(shù)、平均執(zhí)行時間等。可以按照執(zhí)行時間、CPU時間、邏輯讀取等指標(biāo)進行排序和過濾。
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
  1. 使用SQL Server Profiler:Profiler是一個強大的工具,可以用于監(jiān)視和分析SQL Server的活動??梢栽O(shè)置跟蹤會話來捕獲執(zhí)行的查詢,并查看它們的歷史記錄。

  2. 使用Extended Events:Extended Events是SQL Server的事件處理程序,可以捕獲和分析SQL Server引擎的活動。使用Extended Events,可以創(chuàng)建事件會話來捕獲執(zhí)行的查詢,并查看它們的歷史記錄。

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
);
  1. 使用第三方工具:還有一些第三方工具可以幫助查詢SQL Server的歷史執(zhí)行記錄,如SQL Server Management Studio、Idera SQL Diagnostic Manager等。

無論你選擇哪種方法,都可以根據(jù)需求選擇適合的查詢方式,并根據(jù)查詢結(jié)果進行進一步分析。

0