SQL Serverの動きを制御する「トレースフラグ」とは何かSQL Serverトレースフラグレファレンス(1)(1/2 ページ)

「Microsoft SQL Server」が稼働するデータベースシステムを運用する管理者に向け、「トレースフラグ」の活用を軸にしたトラブル対策のためのノウハウを紹介していきます。初回は「トレースフラグとはそもそも何か」を解説します。

» 2017年09月25日 05時00分 公開
[内ヶ島暢之ユニアデックス株式会社]

連載バックナンバー

 昨今のビジネスにITは欠かせません。ITシステムが正常に稼働しているからこそビジネスが正しく回り、そのITをさらに活用していくことでビジネスのさらなる成長を実現します。

 ただITシステムの運用の現場では、大なり小なり、どうしても発生してしまうトラブルとの戦いも避けられません。トラブル対策の基本は、「トラブルが起きるパターンを把握」して、「その仕組みを理解」し、そして「効果的な対処方法を体系的に整理する」ことです。それがトラブルを未然に防ぎ、またトラブルが起こったとしても慌てずに早期解決していくための礎になります。

 Microsoftのデータベース管理システム「Microsoft SQL Server(以下、SQL Server)」に関連するトラブル対策においては、これまで「SQL Serverトラブルシューティング」として、よくあるトラブル事例とその解決方法を体系立てて紹介してきました。本連載「SQL Serverトレースフラグレファレンス」ではその続編として、トラブル対策の「スピード」をさらに高めたトラブル解決を実現するためのトリガーになる「SQL Serverのトレースフラグ」にフォーカスした対策ノウハウを展開していきます。

SQL Serverの「トレースフラグ」とは何か

 「トレースフラグ」とは、SQL Serverのデータベースエンジンに備わる「内部動作を変更する機能」のことです。トラブルシューティングの観点では、パフォーマンス問題の解決やSQL Server自身の動作のデバッグで有効な手段であり、その重要な情報になります。

 トレースフラグにはユニークな番号が振られ、「番号」「ステータス」「スコープ」の3種類のパラメーターで構成されます。

 フラグ(*1)という単語は、「フラグを立てる」などで技術者にはなじみのあるものと思います。オンかオフ、どちらかのステータスを定義するものです。スコープとは、それを有効にする範囲(スコープ)のことを指します。トレースフラグでは、「グローバル(インスタンス全体)」「セッション(設定セッションのみ)」「クエリ(実行クエリのみ)」の3段階で定義されます。

*1:コンピュータ処理におけるフラグとは一般的に、真(オン、有効化などとも表現)と偽(オフ、無効化などとも表現)、2つの値を持つレジスターまたは変数のことを指します。英単語の「旗(Flag)」から来ているので、フラグを真にすることを「フラグを立てる」、偽にすることを「フラグを降ろす」などと表現されます



 SQL Serverのデータベースエンジンにおいてトレースフラグが影響を及ぼす範囲は以下の通りです(図1)。グローバルはインスタンス全体に、セッション、クエリはそれぞれ実行した単位で機能します。セッションはユーザーの接続に対応しており、クエリはそのユーザーが実行する複数のSQL文となります。

photo 図1 SQL Serverのデータベースエンジンにおいてトレースフラグが影響を及ぼす範囲
       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

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

メールマガジン登録

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