ようこそ。睡眠不足なプログラマのチラ裏です。

SQL Server 2005 パーティションとファイルグループ

データパーティション

SQL Server 2005では、データパーティション機能により、大量なデータを論理的に水平分割して格納することができる。
大規模なデータベースでは、テーブルに格納されたデータのアーカイブ時の移動や、
不要になったデータの削除によって多くの時間を要し、またこのような時間のかかるテーブル操作は、
システムへ対して及ぼす影響も大きい。SQL Server 2005のデータパーティション機能では、
巨大なテーブルデータを指定されたキー列の値で水平分割して格納することができる。


複数のプロセッサを備えたサーバの場合、テーブルをパーティションに分割することによって、
並列処理によるパフォーマンス改善が見込める。また管理面においても、パーティション単位で
整合性のチェックやインデックス構築などが行えるため、操作を局所化してテーブル全体へのインパクトをなくすことができる。


ファイルグループ
巨大なデータベースへのアクセスを改善したいと考えた場合、
データベースを複数のデータファイルによって構成し、それらのデータファイルをグループ化するために
ファイルグループを使用することができる。このファイルグループによりテーブルやインデックスを
複数のディスクドライブにまたがって割り付けることができ、I/Oを物理的に分散することができる。
I/O の負荷分散を考慮し、複数のファイルにパーティション分割されたテーブルを格納する場合は、
少なくともファイルグループを 1 つ作成する必要がある。 ファイルグループは、1 つ以上のファイルで構成し、
各パーティションはファイルグループにマップする必要がある。
複数のパーティションに対して 1 つのファイルグループを使用できるが、
バックアップをより細かく制御する場合など、より適切なデータ管理を行うためには、
関連するまたは論理的にグループ化できるデータは同じファイルグループに存在するように
パーティション分割されたテーブルをデザインしなければならない。
ALTER DATABASE を使用すると、論理ファイル グループ名を追加し、ファイルを追加できる。

ALTER DATABASE TEST_DB ADD FILEGROUP [NEW_FILE_GROUP]


また、データファイルやファイルグループは、データベースのバックアップ、復元の単位として使用でき、
1回のバックアップ操作で許容できる時間内に完了しないような巨大なデータベースであっても、
複数のデータファイルに分散することによって、バックアップや復元を複数回に分けて行うことができる。