連載
» 2017年02月27日 05時00分 公開

SQL Serverトラブルシューティング(38):SQL Serverで「トレースログ」を採取する

本連載は、「Microsoft SQL Server」で発生するトラブルを「どんな方法で」「どのように」解決していくか、正しい対処のためのノウハウを紹介します。今回は、「処理遅延の対処に役立てるトレースの採取方法」を説明します。

[椎名武史,ユニアデックス株式会社]

連載バックナンバー

 本連載では、「Microsoft SQL Server(以下、SQL Server)」で発生するトラブルについて、「なぜ起こったか」の理由とともに具体的な対処方法を紹介していきます。

 前回は、データベースの処理遅延に対処するために必要となる情報として「パフォーマンスログ」の採取方法を解説しました。今回も処理遅延の対処に活用できるもう1つの情報となる「トレース」の採取方法を説明します。

トレースとは何か

 トレースは、SQL Serverの内部動作を確認できる情報です。この情報を採取し、確認することで、例えばクエリの開始や終了のタイミングなどを確認できます。

 クエリの開始や終了を確認するための情報としては、この他に「拡張イベント」もあります。トレースでは採取できない「可用性グループ」など、比較的新しいSQL Serverの機能に関する状況を確認したい場合は、こちらの拡張イベントを採取します。

 しかし、既定で組み込まれているテンプレートを使って拡張イベントを作成するような場合には、自動的にフィルターが適用されることから、意図した情報を取得できない可能性があります。そのため、「クエリの実行時間を確認する」という明確な目的の情報をきちんと押さえておくために、基本的なトレースのテンプレートも使用することを筆者は勧めています。

トレースを採取する設定

 トレースも、前回解説したパフォーマンスログと同じく、事前設定と採取開始の手動設定を行うことで採取できます。

 なお、トレースはパフォーマンスログより採取時の負荷が高くなります。稼働させるマシンパフォーマンスによっては、トレースの採取に起因した処理遅延が発生する可能性があるので注意してください。ただし、トレースで得られる、「各クエリの開始と終了のタイミングに関する情報」は、それ以外の処理遅延の対処にとても有益な情報となります。もしこれからデータベースシステムを設計する、あるいはサーバのリプレースを行うならば、トレースを採取しても処理遅延が発生しないように、余裕のある設計にしておくこともお勧めします。

 トレースの採取設定は「SQL Server Profiler」で行います。

 今回のように処理遅延調査を目的とする場合には、テンプレート「Tuning」を活用すると楽です。管理しやすい適当なトレース名を定めてから、「ファイルに保存する」「ファイル ロールオーバーを有効にする」「サーバがトレース データを処理する」のチェックボックスにチェックを入れます(図1)。なお、「サーバがトレース データを処理する」が無効のままですと、負荷の状況によってトレースイベントを破棄してしまう動きとなり、有効な調査データとならない可能性があります。注意してください。

photo 図1 「SQL Server Profiler」の「トレースのプロパティ」から、「ファイルに保存する」「ファイル ロールオーバーを有効にする」「サーバがトレース データを処理する」をチェックする

 この他に、実行プランを採取する「Performanceのイベント」など、他のイベントの情報も一緒に採取しておきたい場合には、併せて、「イベントの選択」タブから対象とするイベントを選択しておいてもよいでしょう(図2)。

photo 図2 イベントの選択タブでは、「すべてのイベントを表示する」「すべての列を表示する」にチェックを入れてから、採取するイベントを選択する

 設定完了後、「実行」ボタンを押すと採取が開始されます。トレースで採取したイベント情報は、同じくSQL Server Profilerで確認できます。


筆者紹介

内ヶ島 暢之(うちがしま のぶゆき)

ユニアデックス株式会社 NUL System Services Corporation所属。Microsoft MVP Data Platform(2011〜)。OracleやSQL Serverなど商用データベースの重大障害や大型案件の設計構築、プリセールス、社内外の教育、新技術評価を担当。2016年IoTビジネス開発の担当を経て、2016年現在は米国シリコンバレーにて駐在員として活動中。目標は生きて日本に帰ること。

椎名 武史(しいな たけし)

ユニアデックス株式会社所属。入社以来 SQL Serverの評価/設計/構築/教育などに携わりながらも、主にサポート業務に従事。SQL Serverのトラブル対応で社長賞の表彰を受けた経験も持つ。休日は学生時代の仲間と市民駅伝に参加し、銭湯で汗を流してから飲み会へと流れる。


Copyright© 2018 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。