16:32:37)追加された行はこの色です。削除された行はこの色です。.NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。Serverインスタンス上で実行中のクエリを収集(トレース)できる。クラスのインスタンスであるイベントが収集する。プロシージャが用意されている。[#m3164d3e]この機能は、次のような多くの場面で活用できる。チューニング-アプリケーション開発時のデバッグ-GUIツールや、ウィザードにより生成されたタスクの内部動作の調査ここでは、SQLプロファイラ(SQLトレース)で取得する-「イベントクラス」-「データ列」-クエリやイベントの検索方法のベターユースを示す。無駄なデータが混入する場合は、~個別にフィルタ設定を検討する。[#w9d0f97b]ユーザが、ユーザのアカウントでDBに直接ログインする場合、~サーバにログインしたユーザと、サーバからログオフしたユーザを、~次のデータ列から確認できる。-「LoginSID」データ列~ユーザのセキュリティ識別番号(SID)-「LoginName」データ列~ユーザのログイン名-「Success」データ列~イベントが正常に終了したかどうか。[#ue44a74d]「Duration」データ列は、クエリ全体が完了するまでにかかった時間を示す。-「Duration」でグループ化(ソート)すれば、問題のあるクエリ、問題のないクエリを分けることができる。-また、フィルタの設定として「Duration」の最小値を指定すれば、短い実行時間のイベントをフィルタできる。スキャン」が検出された場合は、インデックスが正しく利用されていない可能性があり、~性能的に問題になることが多い。スキャン」は、テーブルやインデックスをロックするため、~ロックタイムアウト、デッドロックの原因にもなる。スキャン」の発生は、--「Scan:Stopped」イベントで検出する。--システムデータベースの「Scan:Stopped」イベントが~大量に混入する場合は「DatabaseID」でフィルタを設定する。-実行されたクエリ--クエリ完了のイベントの「TextData」データ列で確認する。--その際、「Duration」データ列で、クエリ全体が完了するまでにかかった時間を確認できる。Plan」イベントの「TextData」データ列で確認する。Scan」などの文字列が入っているので、ここから検索することもできる。対策の際に-「ロックを発生させるクエリ」-「ロックによりブロッキングされるクエリ」の確認が必要になること多い。クラスは、~クエリがロックタイムアウトにより終了した場合に発生する。-実行したクエリは、~クエリ開始のイベントの「TextData」データ列で確認する。クラスがサポートされ、~それをトレースに追加することで、デッドロックが分析できるようになっている模様。Chain~イベントクラスでデッドロックを監視する~http://d.hatena.ne.jp/matu_tak/20091030/1256861414以下、古い情報。」となったクライアントのイベントとしてトレースに記録される。-トランザクションのイベント--デッドロックのイベントの後、---「デッドロックの犠牲者」のトランザクションはロールバックされ、---「他方」のトランザクションはコミットされる。--これは、「SQLTransaction」イベントとして記録される。--この時、の「EventSubClass」データ列に「Commit」、「Rollback」が記録される。Chain」イベント、「Lock:Deadlock」イベントを発生させた~「SPID」を確認し、必要に応じて、「SPID」でフィルタをかけ、トレースを上に遡る。--同じ「SPID」の、クエリ開始のイベントの「TextData」データ列にデッドロックの原因となるクエリがないか確認する。--ただし、「DTC」を使用している場合、---クライアント処理が1つの「SPID」に対応付けられない。---この場合、以下の手順で、クライアント処理を構成する複数の「SPID」を紐付ける。-「DTC」を使用している場合の「SPID」の紐付--「DTCTransaction」イベントの「EventSubClass」データ列が、~「トランザクションの反映」となっているレコードを検索し、~「TextData」データ列に記されているGUIDをメモする。--次に、「TextData」データ列に、上でメモしたものと同じ~GUIDが設定されているレコードの「SPID」をメモする。--これを繰り返すことで、クライアント処理を構成する複数の「SPID」が紐付けられる。Chain」イベント、「Lock:Deadlock」イベントを発生させた一連の~「SPID」を確認し、必要に応じて、「SPID」でフィルタをかけ、トレースを上に遡る。--同一トランザクションの、クエリ開始のイベントの「TextData」データ列に~デッドロックの原因となるクエリがないか確認する。ロックのエスカレーション]]」が発生した場合に記録される。-テーブルなどの大きな粒度のオブジェクトをロックするため、--ロックタイムアウト--デッドロック>の原因にもなる。トレース・ログ(バイナリ)をDBにインポートできる。ストアドは必須でない(fn_trace_gettableを直接実行可能)。[#s2f3be34]実行プランをログをグラフィカルに表示する。[#a9025ea4]オプティマイザが実行プランを決定する。