[INF] SQL Server における自動拡張および自動圧縮の構成に関する注意事項

文書翻訳 文書翻訳
文書番号: 315512
すべて展開する | すべて折りたたむ

概要

多くの SQL Server システムでは、デフォルトの自動拡張および自動圧縮の設定は、チューニングを行わなくても適切に機能します。ただし、環境によっては、チューニングの必要のない場合や、自動拡張パラメータおよび自動圧縮パラメータを調整する必要がある場合があります。この資料では、環境に応じた設定を選択する場合に参考になる背景情報を示します。

詳細

自動拡張および自動圧縮のパラメータをチューニングする場合、いくつかの点について考慮する必要があります。

設定の構成方法

  1. 自動拡張および自動圧縮の設定は、以下を使用して構成できます。
    • ALTER DATABASE ステートメント (SQL Server 2000 のみ)
    • sp_dboption ストアド プロシージャ
    • SQL Server Enterprise Manager
    : SQL Server 2005 を使用している場合は、SQL Server Enterprise Manager ではなく SQL Server Management Studio を使用します。SQL Server 2005 で上記のパラメータを設定する方法の詳細については、次の Microsoft Developer Network (MSDN) Web サイトを参照してください。
    データ ファイルまたはログ ファイルをデータベースに追加する方法 (SQL Server Management Studio)
    http://msdn2.microsoft.com/ja-jp/library/ms189253.aspx

    [データベースのプロパティ] ([ファイル] ページ)
    http://msdn2.microsoft.com/ja-jp/library/ms180254.aspx
    また、データベースの作成時に自動拡張オプションを構成することもできます。

    現在の設定を参照するには、SQL Server Enterprise Manager (SEM) でデータベースのプロパティを表示するか、次の Transact-SQL コマンドを実行します。
    sp_helpdb [ [ @dbname= ] 'name' ]
  2. 自動拡張はファイルごとの設定であることに注意してください。そのため、各データベースについて少なくとも 2 つの場所 (1 つはプライマリ データ ファイル、もう 1 つはプライマリ ログ ファイル) で設定する必要があります。複数のデータ ファイルやログ ファイルを使用する場合は、ファイルごとにこのオプションを設定する必要があります。環境によっては、データベース ファイルごとに異なった設定になる場合があります。

パフォーマンスへの影響

  • 使用可能なログ領域を超える領域を必要とするトランザクションを実行し、そのデータベースのトランザクション ログの自動拡張オプションを有効にしている場合、トランザクションの完了までにかかる時間には、構成されたサイズずつトランザクション ログを拡張するのにかかる時間が含まれます。増加量が多い場合、または長時間かかる他の要因が存在する場合、タイムアウト エラーが原因で、トランザクションを開くクエリが失敗することがあります。データベースのデータの一部の自動拡張が原因で同様の問題が発生する可能性があります。自動拡張の構成を変更するには、SQL Server Books Online の「ALTER DATABASE」を参照してください。
  • ログを拡張する必要がある大規模なトランザクションを実行する場合、そのトランザクション ログに書き込む必要がある他のトランザクションも、拡張操作が完了するまで待機する必要があります。
  • 自動拡張オプションと自動圧縮オプションを組み合わせた場合、不必要なオーバーヘッドが生じることがあります。拡張操作および圧縮操作を実行するしきい値は、サイズが頻繁に増減しないように設定します。たとえば、コミットするまでにトランザクション ログが 100 MB ずつ拡張されるトランザクションを実行するとします。実行後しばらくすると自動圧縮操作が開始され、そのトランザクション ログは 100 MB ずつ圧縮されます。その後、同じトランザクションを実行すると、そのトランザクション ログが再度 100 MB ずつ増加します。この例では、不必要なオーバーヘッドが生じ、ログ ファイルの断片化が潜在的に発生しています。これらはどちらもパフォーマンス低下の原因になる可能性があります。
  • データ ファイルまたはログ ファイルのサイズ変更に起因する物理的な断片化は、パフォーマンスに深刻な影響を与える可能性があります。これは、自動設定を使用する場合にも、ファイルの拡張および圧縮を手動で頻繁に行う場合にも当てはまります。
  • データベースを少量ずつ拡張する場合、またはデータベースを拡張した後圧縮する場合、ディスクの断片化が発生する可能性があります。ディスクの断片化が発生すると、環境によっては、パフォーマンス上の問題が発生する場合があります。少量ずつ拡張する場合も、システムのパフォーマンスが低下する可能性があります。

適切な運用方法

  • 管理された運用システムの場合は、予期しない拡張が発生した場合に備えた非常時対策としてのみ、自動拡張を考える必要があります。自動拡張を日常的に使用して、データおよびログの拡張を管理しないようにしてください。
  • 警告や監視プログラムを使用してファイル サイズを監視し、事前にファイルを拡張することができます。これにより、断片化を避け、ピーク時を外して保守作業を行うことができます。
  • 自動圧縮および自動拡張は、トレーニングされたデータベース管理者 (DBA) が慎重に評価する必要があります。これらは、必ず管理してください。
  • 自動拡張による拡張サイズは、上記で説明したパフォーマンスの低下を避けるために十分な大きさのサイズにする必要があります。構成の設定で使用する正確な値、および拡張サイズを比率で指定するのか、具体的な MB 単位で指定するのかの選択は、環境に含まれている多くの要因によって決まります。テストのための一般的な大まかな指針として、自動拡張の設定をファイル サイズの約 8 分の 1 に設定します。
  • 各ファイルの <MAXSIZE> の設定を有効にして、使用可能なすべてのディスク領域が 1 つのファイルの拡張によって使い果たされないようにします。
  • トランザクションのサイズができる限り小さいまま保持されるようにして、予定外のファイル拡張が行われないようにします。

サイズの設定を自動制御する場合にディスク領域を考慮する必要がある理由

  • 自動拡張の設定を使用しても、ファイルが保存されているドライブで使用できるディスク領域の上限を超えてデータベース サイズを拡張することはできません。そのため、自動拡張機能を使用してデータベースのサイズを変更する場合も、使用可能なハード ディスク領域のチェックを個別に行う必要があります。また、自動拡張の設定は、各ファイルに対して選択する MAXSIZE パラメータによって制限されます。領域不足になる可能性を減らすために、パフォーマンス モニタで SQL Server:Databases オブジェクトの Data File(s) Size (KB) カウンタを監視して、データベースが特定のサイズに達したときに警告するように設定することができます。
  • データ ファイルまたはログ ファイルの予定外の拡張により、他のアプリケーションで使用可能と想定されていた領域が使用され、それらのアプリケーションで問題が発生することがあります。
  • トランザクション ログの拡張サイズは、トランザクション単位の必要量を常に上回るように十分に大きくする必要があります。拡張速度が追いつかず、クエリに必要なサイズが確保されない場合、自動拡張を有効にしていても、トランザクション ログがいっぱいであるというメッセージが表示される可能性があります。
  • SQL Server では、構成されている自動圧縮のしきい値に達したデータベースがあるかどうかのテストを、常に行うわけではありません。代わりに、使用可能なデータベースを監視し、自動圧縮するように構成されている最初のデータベースを検出します。SQL Server では、そのデータベースをチェックし、必要に応じてそのデータベースを圧縮します。次に、何分か待機した後、自動圧縮が構成されている次のデータベースをチェックします。つまり、SQL Server では、すべてのデータベースが同時にチェックされ、それらが同時に圧縮されるのではなく、自動圧縮がラウンド ロビン方式でデータベースに適用されて、一定期間にわたり負荷が分散されます。そのため、自動圧縮を構成した SQL Server の特定のインスタンスに存在するデータベース数によっては、データベースがしきい値に達してから実際に圧縮が実行されるまでに、数時間かかる場合があります。

関連情報

データベースおよびログ ファイルの拡張方法と圧縮方法の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
256650 [INF] SQL Server 7.0 トランザクション ログを圧縮する方法
272318 INF: DBCC による SQL Server 2000 のログ圧縮
317375 [INF] SQL Server でトランザクション ログが予期しない大きさになるか、いっぱいになる
247751 [BUG] データベース メンテナンス プランでデータベースが圧縮されない
305635 [PRB] データベースの自動拡張時にタイムアウトが発生する

SQL Server Books Online のトピック : 「トランザクションログの物理アーキテクチャ」、「トランザクション ログの圧縮」

プロパティ

文書番号: 315512 - 最終更新日: 2011年5月17日 - リビジョン: 7.0
キーワード:?
kbinfo kbsqlmanagementtools KB315512
Microsoft Knowledge Base の免責: Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com