これをテストするには、実験で実際にテーブルを分割する必要があります。http://www.kodyaz.com/articles/how-to-partition-table-non-partitioned-table-sql-server-2008.aspxを参照してください
パーティション関数を照会すると、パーティション関数が何を言っているかがわかります。データがどこに保存されているかはわかりません。ここで既に示したように、実際にテーブルをパーティション化することなく、パーティション関数を設定して実行できます。
テーブルを分割するには、ファイルグループと、パーティション関数を使用して関数結果をファイルグループに割り当てるパーティションスキームも作成する必要があります。次に、そのパーティションスキームを使用するテーブルにクラスター化キーを配置する必要があります。
パーティショニングを設定する
私はコマンドラインSQLの専門家ではありません。SSMSインターフェイスを使用して、ファイルグループpfg1(pf1ファイル)とpfg2(pf2ファイル)をセットアップしました。次に、パーティション関数とスキームを宣言しました。
CREATE PARTITION FUNCTION IDRange1 (int)
AS RANGE LEFT FOR VALUES (10) ;
GO
CREATE PARTITION SCHEME ps_IDRange1
AS PARTITION IDRange1
TO (pfg1, pfg2)
GO
テーブルとクラスター化インデックスを作成する
CREATE TABLE [IDRanges](
[ID] [int] NOT NULL
)
GO
CREATE CLUSTERED INDEX PK_IDRanges
ON dbo.IDRanges(id) ON ps_IDRange1 (ID)
GO
これを行った後、sys.partitions(I have 2005)を照会すると、テーブルに1つだけではなく2つのパーティションがあることがわかります。これは、このテーブルのパーティショニングが完全に実装されたことを示しています。
select * from sys.partitions where object_id = object_id('IDRanges')
partition_id object_id index_id partition_number hobt_id行
-------------------- ----------- ----------- -------- -------- -------------------- --------------------
72057597780295680 770674389 1 1 72057597780295680 0
72057597780361216 770674389 1 2 72057597780361216 0
2つのパーティション(それぞれに行数がある)ができたので、実験を行うことができます。
行を挿入する
INSERT INTO IDRanges ([ID]) VALUES (17)
INSERT INTO IDRanges ([ID]) VALUES (7)
sys.partitionsをチェックして、何が起こったかを確認してください。
select * from sys.partitions where object_id = object_id('IDRanges')
partition_id object_id index_id partition_number hobt_id行
-------------------- ----------- ----------- -------- -------- -------------------- --------------------
72057597780295680 770674389 1 1 72057597780295680 1
72057597780361216 770674389 1 2 72057597780361216 1
うん。各パーティションに1行。
行を移動します。
UPDATE IDRanges
SET [ID] = 8 WHERE [ID] = 17
パーティションを確認する
select * from sys.partitions where object_id = object_id('IDRanges')
partition_id object_id index_id partition_number hobt_id行
-------------------- ----------- ----------- -------- -------- -------------------- --------------------
72057597780295680 770674389 1 1 72057597780295680 2
72057597780361216 770674389 1 2 72057597780361216 0
最初のパーティションには1ではなく2つの行があり、2番目のパーティションには2ではなくゼロの行があります。
これは、パーティションテーブルのクラスター化キーを変更した結果、行が自動的に移動されたことを確認していると思います。