ホームページ >データベース >mysql チュートリアル >SQL Server クエリ履歴を取得するにはどうすればよいですか?

SQL Server クエリ履歴を取得するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2025-01-15 15:16:43815ブラウズ

How Can I Retrieve My SQL Server Query History?

SQL Server Management Studio (SSMS) での過去の SQL クエリの回復

一部のデータベース システム (MySQL、PostgreSQL) とは異なり、SQL Server はクエリ履歴を自動的に記録しません。 したがって、過去のクエリを取得するには、さまざまなアプローチが必要です。

キャッシュされた実行計画を確認しています

SQL Server インスタンスが再起動されていない場合、クエリの実行プランがキャッシュされたままになる可能性があります。 次のクエリを使用して検索します:

<code class="language-sql">SELECT t.[text]
FROM sys.dm_exec_cached_plans AS p
CROSS APPLY sys.dm_exec_sql_text(p.plan_handle) AS t
WHERE t.[text] LIKE N'%something unique about your query%';</code>

'%something unique about your query%' をクエリの特徴的な部分に置き換えてください。

SSMS 回復ファイルを調査しています

予期しない SSMS クラッシュの後、次のディレクトリに回復ファイルが見つかる可能性があります:

<code>C:\Users\<your_username>\Documents\SQL Server Management Studio\Backup Files\</code>

サードパーティツールとサーバー側トレース

上記の方法がうまくいかない場合は、次のオプションを検討してください。

  • SSMS Tools Pack: このアドインは、クエリ履歴ログなどの高度な機能を提供します (注: この機能は SQL Server 2012 以降のバージョンでは無料ではない場合があります)。
  • サーバー側トレース: クエリ実行データを含む詳細なイベント追跡を有効にします。 これは、包括的なクエリ ログを記録するためのより堅牢な方法です。

クエリ統計の改善

キャッシュされたクエリを最後の実行時間で並べ替えて表示するには、次の拡張クエリを使用します。

<code class="language-sql">SELECT t.[text], s.last_execution_time
FROM sys.dm_exec_cached_plans AS p
INNER JOIN sys.dm_exec_query_stats AS s
   ON p.plan_handle = s.plan_handle
CROSS APPLY sys.dm_exec_sql_text(p.plan_handle) AS t
WHERE t.[text] LIKE N'%something unique about your query%'
ORDER BY s.last_execution_time DESC;</code>

これにより、最近のクエリ アクティビティがより整理されたビューが提供されます。

以上がSQL Server クエリ履歴を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。