検索
連載

速報! SQL Server 2005のデータパーティションSQL Server 2000 チューニング全工程(3)(2/3 ページ)

本連載ではSQL Server 2000のチューニングに関するノウハウを解説する。SQL Server 2000は自動チューニング機能を持つために、チューニングはあまり必要ないと思われがちだが、そのアーキテクチャを理解し適切にツール類を使用しなければ、本来のパフォーマンスを得られない。(編集局)

PC用表示 関連情報
Share
Tweet
LINE
Hatena

データパーティションの作成サンプル

 パーティション分割されたテーブルでデータの移動や削除をどのように行うのかを確認するために、以降は、SQL Server 2005に付属するAdventureWorksサンプルデータベース で、受注の履歴データを格納するTransactionHistoryテーブルと履歴データのアーカイブ用のTransactionHistoryArchiveテーブルにパーティションを設定する手順を紹介します。TransactionHistoryテーブルとTransactionHistoryArchiveテーブルは、同じテーブル構造を持ちProductionスキーマに定義されています。

注) AdventureWorksサンプルデータベース

SQL Server 2005に付属するデータベースで、既定ではインストールされない。事前にインストールしておく場合は、SQL Server 2005のセットアップ時に、詳細設定から追加する。


図2 TransactionHistoryテーブルとTransactionHistoryArchiveテーブルのテーブル構造
図2 TransactionHistoryテーブルとTransactionHistoryArchiveテーブルのテーブル構造

1. TransactionHistoryテーブルを分割するためのパーティション関数を定義

 リスト4のTransactionHistoryPFパーティション関数では、月ごとのデータを格納するためdatetime型の列に格納された値に基づきTransactionHistoryテーブル、およびインデックスを12のパーティションに分割します。作成されたパーティション関数を確認する場合、「SQL Server Management Studio」のオブジェクトエクスプローラから、[Databases] - [AdventureWorks] - [Storage] - [Partition Functions] を展開し、表示されるオブジェクトを確認します。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

2. TransactionHistoryテーブル用のパーティションスキームを定義し、パーティション関数で指定されたパーティションを配置するファイルグループを指定

 リスト5のパーティションスキームは、TransactionHistoryPFパーティション関数で指定されたパーティションを同じPRIMARYファイルグループに配置することを指定しています。作成されたパーティションスキームを確認する場合、「SQL Server Management Studio」のオブジェクトエクスプローラから、[Databases] - [AdventureWorks] - [Storage] - [Partition Schemes] を展開し、表示されるオブジェクトを確認します。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

3. 定義されたパーティションスキームを使って、テーブルを再作成

 リスト6のスクリプトでは、TransactionHistoryテーブルでTransactionHistoryPSパーティションスキームを使用するためテーブルの再作成を行っています。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

4. TransactionHistoryArchiveテーブルを分割するためのパーティション関数を定義

 リスト7のTransactionHistoryArchivePFパーティション関数では、月ごとのデータを格納するためdatetime型の列に格納された値に基づきTransactionHistoryArchiveテーブル、およびインデックスを2つのパーティションに分割します。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

5.TransactionHistoryArchiveテーブル用のパーティションスキームを定義し、パーティション関数で指定されたパーティションを配置するファイルグループを指定

 リスト8のパーティションスキームは、TransactionHistoryArchivePFパーティション関数で指定されたパーティションを同じPRIMARYファイルグループに配置することを指定しています。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

6.定義されたパーティションスキームを使って、テーブルを再作成

 リスト9のスクリプトでは、TransactionHistoryArchiveテーブルでTransactionHistoryArchivePSパーティションスキームを使用するためテーブルの再作成を行っています。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

7. TransactionHistoryテーブルとTransactionHistoryArchiveテーブルへのデータロード

 リスト10のスクリプトで、TransactionHistoryテーブルとTransactionHistoryArchiveテーブルにデータをロードします。TransactionHistoryArchiveテーブルには8万9253件、TransactionHistoryテーブルには11万3443件の受注データがロードされるはずです。TransactionHistoryArchiveテーブルには、2001年5月17日から2003年8月31日までのデータが格納されます。TransactionHistoryテーブルには、2003年9月1日から2004年9月3日までのデータが格納されます。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 次ページでは、実際にサンプルデータベースを使って、データを移動する作業を解説します。(次ページに続く)

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る