【トレースフラグ 2562】──DBCC CHECKDBにおけるTEMPDBの利用制限を解除する:SQL Serverトレースフラグレファレンス(40)
「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.
関連記事
- それでは“ダメ”な「トラブル対応例」
本連載は、「Microsoft SQL Server」で発生するトラブルを「どんな方法で」「どのように」解決していくか、「SQL Serverで起こりがちなトラブル」を厳選して、具体的な対処方法を紹介していきます。第1回目は「トラブルを適切に対処するための考え方」を解説します。 - 「パラメータースニッフィング」によって、あるタイミングから処理が遅くなった(パフォーマンストラブル)
本連載は、「Microsoft SQL Server」で発生するトラブルを「どんな方法で」「どのように」解決していくか、正しい対処のためのノウハウを紹介します。今回は、「あるタイミングで処理遅延が発生し、それが継続して発生するようになってしまった場合の対処例.2」を解説します。 - I/Oボトルネックの病巣はこれで究明できる