次の方法で共有


SQL Server Profiler の使用に関するシナリオ

SQL Server Profilerを使用する場合は、まず SQL Server のインスタンスを監視する理由を明確にします。このトピックでは、SQL Server Profiler を使用してトレース情報を収集する一般的なシナリオについて説明します。

次に、SQL Server Profiler を使用する一般的なシナリオを示します。

  • パフォーマンスが最も悪いクエリの検索。

    たとえば、TSQL イベント クラスと Stored Procedure イベント クラス (RPC:CompletedSQL:BatchCompleted) に関係するイベントをキャプチャするトレースを作成できます。トレースにすべてのデータ列を含め、Duration でグループ化し、イベント基準を指定します。たとえば、10,000 マイクロ秒をイベントの最短の Duration として指定すると、トレースから実行時間が短いイベントを削除できます。Duration の最小値は必要に応じて高くすることができます。一度に 1 つのデータベースのみを監視する場合は、Database ID イベント基準の値を指定します。

  • デッドロックの原因の特定。

    たとえば、TSQL イベント クラスと Stored Procedure イベント クラス (RPC:StartingSQL:BatchStarting)、および Locks イベント クラス (Deadlock graphLock:Deadlock、または Lock:Deadlock Chain) に関係するイベントをキャプチャするトレースを作成できます。トレースにすべてのデータ列を含め、Event Class でグループ化します。一度に 1 つのデータベースのみを監視する場合は、Database ID イベント基準の値を指定します。Deadlock graph イベント クラスを指定すると、SQL Server Profiler はデッドロックの状態をグラフィカルに表示します。詳細については、「SQL Server Profiler を使用したデッドロックの分析」を参照してください。

    デッドロックに関係する接続を表示するには、次のいずれかを実行します。

    • キャプチャしたデータを含むトレースを開き、ClientProcessID でデータをグループ化し、デッドロックに関係する両方の接続を展開表示します。

    • キャプチャしたデータをトレース ファイルに保存し、トレース ファイルを 2 回開いて、2 つの SQL Server Profiler ウィンドウに個別に表示されるようにします。キャプチャしたデータを ClientProcessID でグループ化し、デッドロックに関係するクライアント プロセス ID を展開表示します。デッドロックになっている各接続はそれぞれ個別のウィンドウに表示されます。ウィンドウを並べて表示し、デッドロックの原因となっているイベントを確認します。特定のデッドロックに関するグラフ データをファイルに保存する場合は、目的のデッドロック イベントを右クリックし、[イベント データの抽出] をクリックします。

  • ストアド プロシージャのパフォーマンスの監視。

    たとえば、Stored Procedure イベント クラス (SP:CompletedSP:StartingSP:StmtCompleted、および SP:StmtStarting) と TSQL イベント クラス (SQL:BatchStartingSQL:BatchCompleted) に関係するイベントをキャプチャするトレースを作成できます。トレースにすべてのデータ列を含め、ClientProcessID でグループ化します。一度に 1 つのデータベースのみを監視する場合は、Database ID フィルタを使用し、Database ID イベント基準の値を指定します。同様に、一度に 1 つのストアド プロシージャのみを監視する場合は、Object ID フィルタを使用し、Object ID イベント基準の値を指定します。

  • SQL Server の利用状況の監査。

    たとえば、どのユーザーがサーバーにログインしているかをセキュリティ管理者が常時把握しておく必要がある場合、SQL Server Profiler トレースを使用すれば、ユーザーのサーバーへのログインやサーバーからのログオフの状況を完全に記録できます。この情報は、その後、法的または技術的な目的に使用できます。

    トレースを作成し、Audit Login イベントを選択します。適切な情報を返すには、EventClass (既定で選択済み)、EventSubClassLoginSIDLoginName の各データ列を指定します。

  • ユーザーごとの Transact-SQL 利用状況の監視

    Sessions イベント クラス、ExistingConnection イベント クラス、および TSQL イベント クラスに関係するイベントをキャプチャするトレースを作成できます。トレースにすべてのデータ列を含め、イベント基準は指定せずに、キャプチャしたイベントを DBUserName でグループ化します。

  • 負荷テストでの代表的なイベント サンプルの収集。

    SQL Server Profilerには、ベンチマーク テストなどの反復チューニングに使用できる事前定義された TSQL_Replay テンプレートが用意されています。

  • データベース エンジン チューニング アドバイザを使用した、データベースの物理デザインのチューニングに使用するイベント サンプルの収集。

    SQL Server Profilerには、トレース出力に適切な Transact-SQL イベントを収集するための事前定義されたテンプレートが用意されています。このトレース出力は、データベース エンジン チューニング アドバイザでワークロードとして使用できます。