SQL Serverで「トレースログ」を採取する:SQL Serverトラブルシューティング(38)
本連載は、「Microsoft SQL Server」で発生するトラブルを「どんな方法で」「どのように」解決していくか、正しい対処のためのノウハウを紹介します。今回は、「処理遅延の対処に役立てるトレースの採取方法」を説明します。
本連載では、「Microsoft SQL Server(以下、SQL Server)」で発生するトラブルについて、「なぜ起こったか」の理由とともに具体的な対処方法を紹介していきます。
前回は、データベースの処理遅延に対処するために必要となる情報として「パフォーマンスログ」の採取方法を解説しました。今回も処理遅延の対処に活用できるもう1つの情報となる「トレース」の採取方法を説明します。
トレースとは何か
トレースは、SQL Serverの内部動作を確認できる情報です。この情報を採取し、確認することで、例えばクエリの開始や終了のタイミングなどを確認できます。
クエリの開始や終了を確認するための情報としては、この他に「拡張イベント」もあります。トレースでは採取できない「可用性グループ」など、比較的新しいSQL Serverの機能に関する状況を確認したい場合は、こちらの拡張イベントを採取します。
しかし、既定で組み込まれているテンプレートを使って拡張イベントを作成するような場合には、自動的にフィルターが適用されることから、意図した情報を取得できない可能性があります。そのため、「クエリの実行時間を確認する」という明確な目的の情報をきちんと押さえておくために、基本的なトレースのテンプレートも使用することを筆者は勧めています。
トレースを採取する設定
トレースも、前回解説したパフォーマンスログと同じく、事前設定と採取開始の手動設定を行うことで採取できます。
なお、トレースはパフォーマンスログより採取時の負荷が高くなります。稼働させるマシンパフォーマンスによっては、トレースの採取に起因した処理遅延が発生する可能性があるので注意してください。ただし、トレースで得られる、「各クエリの開始と終了のタイミングに関する情報」は、それ以外の処理遅延の対処にとても有益な情報となります。もしこれからデータベースシステムを設計する、あるいはサーバのリプレースを行うならば、トレースを採取しても処理遅延が発生しないように、余裕のある設計にしておくこともお勧めします。
トレースの採取設定は「SQL Server Profiler」で行います。
今回のように処理遅延調査を目的とする場合には、テンプレート「Tuning」を活用すると楽です。管理しやすい適当なトレース名を定めてから、「ファイルに保存する」「ファイル ロールオーバーを有効にする」「サーバがトレース データを処理する」のチェックボックスにチェックを入れます(図1)。なお、「サーバがトレース データを処理する」が無効のままですと、負荷の状況によってトレースイベントを破棄してしまう動きとなり、有効な調査データとならない可能性があります。注意してください。
この他に、実行プランを採取する「Performanceのイベント」など、他のイベントの情報も一緒に採取しておきたい場合には、併せて、「イベントの選択」タブから対象とするイベントを選択しておいてもよいでしょう(図2)。
設定完了後、「実行」ボタンを押すと採取が開始されます。トレースで採取したイベント情報は、同じくSQL Server Profilerで確認できます。
筆者紹介
内ヶ島 暢之(うちがしま のぶゆき)
ユニアデックス株式会社 NUL System Services Corporation所属。Microsoft MVP Data Platform(2011〜)。OracleやSQL Serverなど商用データベースの重大障害や大型案件の設計構築、プリセールス、社内外の教育、新技術評価を担当。2016年IoTビジネス開発の担当を経て、2016年現在は米国シリコンバレーにて駐在員として活動中。目標は生きて日本に帰ること。
椎名 武史(しいな たけし)
ユニアデックス株式会社所属。入社以来 SQL Serverの評価/設計/構築/教育などに携わりながらも、主にサポート業務に従事。SQL Serverのトラブル対応で社長賞の表彰を受けた経験も持つ。休日は学生時代の仲間と市民駅伝に参加し、銭湯で汗を流してから飲み会へと流れる。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 「SQL Server 2016」に搭載される新たなセキュリティ対策を追う
パブリックプレビューが公開されているマイクロソフトのRDB次期版「SQL Server 2016」。特徴の1つとするセキュリティ対策機能のポイントと目指すところをキーパーソンに聞いた。 - そもそも、リレーショナルデータベースとは何か?
データベースを基礎から勉強し理解を深めていくことは簡単なことではありません。本連載では、データベースに対するハードルを少しでも低くするために、初心者の方に必要なデータベースの基本から、障害対策やチューニングといった実践に即した内容までを幅広く解説していきます。今回は、データベースの役割と、それを管理するソフトウェアであるDBMSの基本機能について解説します。【更新】 - データの登録を行うINSERT文
- 複数の条件を指定してSELECT文を実行する
前回は、SELECT文の初歩の初歩を解説しました。今回は、複数の条件を指定して、目的のデータを取り出す方法を解説します(編集部) - Oracle運用の基本「ログ」を理解しよう
本連載では、Oracle Database運用の鍵となるトラブル対処法について紹介していきます。第1回、第2回では情報収集の要となるログについて見ていきます。ログの出力情報は10gと11gとでは大きく異なる点がありますので、それぞれについても確認しておきましょう。