Sql-Server

獲取 MSSQL 數據庫上的最後一條語句執行日期

  • February 21, 2018

在 MSSQL 數據庫中,我想知道為該數據庫執行的最後一條語句是什麼時候。

那麼,是否有任何日誌可用於查看所需的活動記錄(可能是事務日誌,但我不確定如何從中獲取日期)?

您將需要使用sys.dm_exec_query_statsdmv。如果您只是想查看執行的最後一條語句,這應該可以幫助您開始(注意:您需要在數據庫的上下文中執行它,例如使用USE <db_name>命令):

SELECT
deqs.creation_time
,   deqs.last_execution_time
,   dest.text
,   SUBSTRING(dest.text, 
       (deqs.statement_start_offset/2) + 1,
           ((CASE statement_end_offset 
               WHEN -1 
                   THEN DATALENGTH(dest.text)
               ELSE deqs.statement_end_offset
               END 
                   - (deqs.statement_start_offset/2) + 1)))
AS statement_text
, deqp.query_plan
FROM 
sys.dm_exec_query_stats AS deqs
CROSS APPLY 
sys.dm_exec_sql_text(deqs.sql_handle) AS dest
CROSS APPLY 
sys.dm_exec_query_plan(deqs.plan_handle) AS deqp
WHERE deqs.last_execution_time = (SELECT MAX(last_execution_time)
                               FROM sys.dm_exec_query_stats)

你可以試試這兩個查詢

SELECT deqs.last_execution_time AS [Time], dest.TEXT AS [Query], dest.dbid
FROM sys.dm_exec_query_stats AS deqs
CROSS APPLY sys.dm_exec_sql_text(deqs.sql_handle) AS dest
ORDER BY deqs.last_execution_time DESC

要麼

SELECT conn.session_id, sson.host_name, sson.login_name, 
sqltxt.text, sson.login_time,  sson.status, sson.database_id
FROM sys.dm_exec_connections conn
INNER JOIN sys.dm_exec_sessions sson 
ON conn.session_id = sson.session_id
CROSS APPLY sys.dm_exec_sql_text(most_recent_sql_handle) AS sqltxt
ORDER BY conn.session_id

引用自:https://dba.stackexchange.com/questions/198439