「Microsoft SQL Server」が稼働するデータベースシステムを運用する管理者に向け、「トレースフラグ」の活用を軸にしたトラブル対策のためのノウハウを紹介していきます。今回は「トレースフラグ2562の詳細と使い方」を解説します。
本連載では、「Microsoft SQL Server(以下、SQL Server)」で発生するトラブル対策を踏まえた「SQL Serverのトレースフラグ」の使いこなしTipsを紹介していきます。
今回は「トレースフラグ2562」の詳細と使い方を解説します。
トレースフラグ2562は、DBCC CHECKDBにおけるTEMPDBの利用制限を解除する設定です。SQL Serverの全バージョンに対応します。
トレースフラグに2562は、DBCC CHECKDBコマンドのパフォーマンス向上のために導入されました。DBCC CHECKDBコマンド実行時には一時領域としてTEMPDBを使います(SQL Serverトラブルシューティング(20)、図1)。
このとき既定動作ではTEMPDBの使用領域に対して格納されているインデックスの数などに基づき、内部的に制限をかけています。これはDBCC CHECKDB実行中の他処理へのパフォーマンスを考慮した実装だと考えられます。
トレースフラグ2562を使うと、こうしたTEMPDBへの制限を解除できます。TEMPDBをフルに使えるため、性能向上を見込めます。その一方でTEMPDBの構成や配置されているドライブの性能などに依存するため、必ずしも性能が向上するわけではありません。
さらにTEMPDBの利用量が増えるために、他の処理と同時に実行する際にはどの程度、影響があるのか確認する必要があります。テスト環境で動作確認後に設定してください。
設定方法 | 可/不可 | 要/不要 |
---|---|---|
スタートアップ | ○ | − |
グローバルスコープ | ○ | − |
セッションスコープ | − | − |
クエリスコープ | − | − |
トレースフラグ 3604/3605 | − | 不要 |
トレースフラグ2562を有効にした場合と、無効の場合でそれぞれDBCC CHECKDB WITH PHYSICAL_ONLYを実行し、その際のTEMPDBのデータファイルサイズを確認しました。
TEMPDBのサイズは必要に応じて自動拡張するよう設定しています。このため、DBCC CHECKDBの要求に従って拡張が起きます。トレースフラグ2562を設定する以前は、規定動作通り、TEMPDBの利用が制限されて自動拡張は起きませんでした。図2に示したデータファイルのサイズには変化がありません。その後トレースフラグ2562を有効にしてDBCC CHECKDBを実行すると、自動拡張が発生しました。
以下のMicrosoftの文書によると、トレースフラグ2562を有効にすることで少なくとも5%、TEMPDBの使用量が増えます。そのためTEMPDBのサイズ管理や同時に流れている処理へのパフォーマンスの影響などに注意する必要があります。
ユニアデックス株式会社 NUL System Services Corporation所属。Microsoft MVP for Data Platform(2011〜)。OracleやSQL Serverなど商用データベースの重大障害や大型案件の設計構築、プリセールス、社内外の教育、新技術評価を担当。2016年IoTビジネス開発の担当を経て、現在は米国シリコンバレーにて駐在員として活動中。目標は生きて日本に帰ること。
ユニアデックス株式会社所属。Microsoft MVP for Data Platform(2017〜)。入社以来 SQL Serverの評価/設計/構築/教育などに携わりながらも、主にサポート業務に従事。SQL Serverのトラブル対応で社長賞の表彰を受けた経験も持つ。休日は学生時代の仲間と市民駅伝に参加し、銭湯で汗を流してから飲み会へと流れる。
Copyright © ITmedia, Inc. All Rights Reserved.