6

SQL Server 2008のトリガーベースのログ機能に取り組んでいる開発者の1人が、T-SQL内で最後に実行されたSQLコマンドを取得するコマンドがあるかどうかを尋ねてきました。そのような機能のためのシステムストアドプロシージャがあると思いましたが、過去10年間の別の製品を考えている可能性があります...オンライン検索では結果が得られませんでした。

誰かがその種の情報を持っていますか?

4

3 に答える 3

19

必ずこれを試してください:

SELECT
DMExQryStats.last_execution_time AS [Executed At],
DMExSQLTxt.text AS [Query]
FROM
sys.dm_exec_query_stats AS DMExQryStats
CROSS APPLY
sys.dm_exec_sql_text(DMExQryStats.sql_handle) AS DMExSQLTxt
ORDER BY
DMExQryStats.last_execution_time DESC

最近実行されたクエリと、それらが実行された日時が返されます

于 2009-07-28T19:34:27.263 に答える
4

まあ、最新の SQL バッチを取得するプロシージャは、安全にそれ自体を返すことができます:)

重要なことに、列に基づいて、プランが最後にいつ実行されたかを確認sys.dm_exec_query_statsできます。ただし、実行後にキャッシュから削除されたプランを考慮していないため、この方法は信頼できないことに注意してください。sys.dm_exec_procedure_statslast_execution_time

于 2009-07-28T19:38:50.530 に答える
1

マルチコアマシンのコンテキストで「最新」とはどういう意味ですか?

また、彼は最近開始された、または最近終了したことを意味しますか?

最後に、彼はSSMSを開いて、ActivityMonitorを確認する必要があります。

于 2009-07-28T19:33:57.357 に答える