1. ホーム
  2. sql-server

[解決済み] 特定のデータベースに対して最後に実行されたクエリ

2023-04-20 06:27:44

質問

SSMS で次の SQL を使用して、最後に実行されたクエリを取得する方法を知っています -。

SELECT deqs.last_execution_time AS [Time], dest.text AS [Query]
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

しかし、私は特定のデータベースのためにそれらを見つけたいのです。必要なければ、SQL Profiler を使用したくありません。さらに、SQL Profiler では、プロファイリングをオンにせずに実行したクエリを表示することはできないと思います。私はこれを SSMS から行う必要があります。

どのように解決するのですか?

これは、インスタンス内の任意のデータベース上のクエリを検索するために私のために動作します。 私はインスタンスのシステム管理者です(あなたの権限を確認してください)。

SELECT deqs.last_execution_time AS [Time], dest.text AS [Query], dest.*
FROM sys.dm_exec_query_stats AS deqs
CROSS APPLY sys.dm_exec_sql_text(deqs.sql_handle) AS dest
WHERE dest.dbid = DB_ID('msdb')
ORDER BY deqs.last_execution_time DESC

これはAaron Bertrandが提供した答えと同じですが、答えに置かれませんでした。