Share via


AdventureWorks2008R2 サンプル データベースのパーティション分割

SQL Server には、AdventureWorks2008R2 サンプル データベースに対して実行して、パーティション分割シナリオを実装できる 2 つの Transact-SQL スクリプトが用意されています。Readme_PartitioningScript スクリプトと ReadMe_SlidingWindow スクリプトのインストールおよび実行方法については、「SQL Server のサンプルとサンプル データベースのインストールに関する注意点」を参照してください。

1 つ目のスクリプト PartitionAW.sql では、AdventureWorks2008R2 のテーブル TransactionHistoryTransactionHistoryArchive がパーティション分割されます。TransactionHistory テーブルには、今年度の売上高記録が格納されます。このテーブルは、主に新しいレコードの挿入と、必要に応じてそれらのレコードの更新に使用されます。TransactionHistoryArchive テーブルには、今年度以前の売上高の記録が格納されます。このテーブルは、主に SELECT クエリの実行と、データ ウェアハウスにデータを移動するためのステージング テーブルとして使用されます。これらのテーブルのパーティション分割の設計に関する詳細については、「パーティション テーブルとパーティション インデックスに関するプランニング ガイドライン」を参照してください。

現実のシナリオでは、TransactionHistory テーブルと TransactionHistoryArchive テーブルは、このデータベース内で最もサイズの大きなテーブルになる可能性があります。パーティション分割することで、月ごとのデータのサブセットをこれら 2 つのテーブル間で管理できるようになります。毎月、最も古い月のデータが TransactionHistory から TransactionHistoryArchive に移動されます。このようにして、TransactionHistory は、INSERT 操作と UPDATE 操作の対象となる最新のデータのみを保持し、古いデータは TransactionHistoryArchive に移動してスクラビングや分析を行うようにします。この 2 つのテーブルはパーティション分割されているので、テーブル間で各月のデータの "かたまり" を数秒で移動できます。以前のバージョンでは、この処理に数分または数時間かかっていました。このような高速な処理が可能な理由は、データが物理的に再配置されるのではなく、メタデータの操作のみで処理できるためです。

2 つ目のスクリプト Sliding.sql は、この毎月のデータの "スライド移動" のシナリオを実装します。このスクリプトの動作方法の詳細については、「データのサブセットを管理するためのパーティションの設計」を参照してください。