TEMPDB の容量計画、およびインデックス作成と再構築の同時実行に関する考慮事項

SQL Server ベスト プラクティス アーティクル

このページはアーカイブです。記載されている内容は情報提供のみを目的としており、ページ内のリンクは有効でない可能性がありますが、これらの情報についてマイクロソフトはいかなる責任も負わないものとします。

Sanjay Mishra

テクニカル レビュア: Tom Davidson、Mark Souza、Prem Mehra、Sunil Agarwal、Mike Ruthruff

プロジェクト編集者: Suzanne Bonney

ダウンロード

ダウンロード TEMPDB Capacity Planning for Index Create and Rebuild.doc

139 KB
Microsoft Word ファイル

Office ビューアのダウンロード

*

はじめに

インデックスの作成および再構築は、最も一般的なデータベース管理タスクの一部です。アプリケーション要件およびデータ量の変化に応じて、データベース管理者は定期的なインデックス メンテナンス スケジュールを作成する必要があります。インデックスのメンテナンス計画を立てるときに考慮すべき主要な要素には、パフォーマンス、同時実行、必要なリソースなどがあります。SQL Server 2005 では、パフォーマンス、同時実行、およびリソースの要件を効果的に満たすことができるように、インデックスの作成や再構築のためのオプションがいくつか用意されています。

SQL Server 2005 で利用できるオプション (ONLINE = ON または OFF) を使用すると、インデックスの作成や再構築を行うときに、パフォーマンスおよび同時実行の要件を管理できます。オンラインによるインデックスの作成や再構築 (ONLINE = ON) では最大同時実行数を利用できますが、使用されるリソースが多くなり、処理時間も長くなります。オンラインによるインデックスの作成や再構築の実行時、クエリ、挿入、更新、および削除を、基になるテーブルに対して実行することができます。オフラインによるインデックスの作成や再構築 (ONLINE = OFF、既定値) では、使用されるリソースが少ないため、処理時間は短くなりますが、同時実行が制限されます。オフラインによるインデックスの作成や再構築では、操作の継続のために、基になるテーブルへのユーザー アクセスが制限されます。オンラインによるインデックス操作の詳細については、SQL Server Books Onlineを参照してください。

インデックス操作時、SQL Server による一時領域の管理を制御するために、SQL Server には SORT_IN_TEMPDB というオプションが用意されています。SQL Server では、インデックスの作成または再構築時、並べ替えやその他の中間タスクのために一時領域を使用します。この一時領域は、ユーザー データベースから、または TEMPDB データベースから使用することができます。CREATE INDEX または ALTER INDEX ステートメントの SORT_IN_TEMP オプションを OFF に設定すると (既定値)、一時領域はユーザー データベースから使用されます。SORT_IN_TEMP を ON に設定すると、一時領域は TEMPDB データベースから使用されます。

一時領域をユーザー データベースから使用する場合でも、TEMPDB データベースから使用する場合でも、同じサイズの一時領域が必要になります。一時領域を TEMPDB データベースから使用する (SORT_IN_TEMPDB = ON) 場合の利点については、SQL Server Books Online の tempdb とインデックスの作成に関するトピックで説明しています。

ONLINE および SORT_IN_TEMPDB という 2 つのオプションはどちらも、ユーザー データベースおよび TEMPDB データベースで使用される領域のサイズに影響を与えます。必要となる一時領域のサイズに影響を与えるその他の要素には、以下のものがあります。

  • クラスタ化インデックスを使用しているか、または非クラスタ化インデックスを使用しているか。

  • 新しいインデックスを作成するのか、古いインデックスを再構築するのか。

このドキュメントの内容

  • はじめに

  • 概要

  • テストの目的

  • テスト方法

  • テスト結果および考察

  • 推奨事項

  • まとめ