AdventureWorks サンプル データベースのパーティション分割
SQL Server 2005 には、AdventureWorks サンプル データベースに対して実行して、パーティション分割シナリオを実装できる 2 つの Transact-SQL スクリプトが用意されています。これらのスクリプトのインストールと実行方法の詳細については、「Readme_PartitioningScript 」および「Readme_SlidingWindow」を参照してください。
1 つ目のスクリプト PartitionAW.sql では、AdventureWorks のテーブル TransactionHistory と TransactionHistoryArchive がパーティション分割されます。TransactionHistory テーブルには、今年度の売上高記録が格納されます。このテーブルは、主に新しいレコードの挿入と、必要に応じてそれらのレコードの更新に使用されます。TransactionHistoryArchive テーブルには、今年度以前の売上高の記録が格納されます。このテーブルは、主に SELECT クエリの実行と、データ ウェアハウスにデータを移動するためのステージング テーブルとして使用されます。これらのテーブルのパーティション分割の設計に関する詳細については、「パーティション テーブルとパーティション インデックスに関するプランニング ガイドライン」を参照してください。
現実のシナリオでは、TransactionHistory テーブルと TransactionHistoryArchive テーブルは、このデータベース内で最もサイズの大きなテーブルになる可能性があります。パーティション分割することで、月ごとのデータのサブセットをこれら 2 つのテーブル間で管理できるようになります。毎月、最も古い月のデータが TransactionHistory から TransactionHistoryArchive に移動されます。このようにして、TransactionHistory は、INSERT 操作と UPDATE 操作の対象となる最新のデータのみを保持し、古いデータは TransactionHistoryArchive に移動してスクラビングや分析を行うようにします。この 2 つのテーブルはパーティション分割されているので、テーブル間で各月のデータの "かたまり" を数秒で移動できます。以前のバージョンでは、この処理に数分または数時間かかっていました。このような高速な処理が可能な理由は、データが物理的に再配置されるのではなく、メタデータの操作のみで処理できるためです。
2 つ目のスクリプト Sliding.sql は、この毎月のデータの "スライド移動" のシナリオを実装します。このスクリプトの動作方法の詳細については、「データのサブセットを管理するためのパーティションの設計」を参照してください。
参照
概念
パーティション テーブルとパーティション インデックスの概念