Sql-Server
獲取 MSSQL 數據庫上的最後一條語句執行日期
在 MSSQL 數據庫中,我想知道為該數據庫執行的最後一條語句是什麼時候。
那麼,是否有任何日誌可用於查看所需的活動記錄(可能是事務日誌,但我不確定如何從中獲取日期)?
您將需要使用
sys.dm_exec_query_stats
dmv。如果您只是想查看執行的最後一條語句,這應該可以幫助您開始(注意:您需要在數據庫的上下文中執行它,例如使用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