Bunu test etmek için deneyin aslında tabloyu bölümlere ayırması gerekir. Bkz. Http://www.kodyaz.com/articles/how-to-partition-table-non-partitioned-table-sql-server-2008.aspx
Bölümleme işlevini sorgulamak size bölümleme işlevinin ne söylediğini gösterir. Verilerin nerede depolandığını söylemez. Bölümleme işlevi ayarlayabilir ve burada zaten gösterildiği gibi bir tabloyu bölümlere ayırmadan çalıştırabilirsiniz.
Tabloyu bölümlemek için, dosya gruplarına işlev sonuçları atamak için dosya grupları ve bölümleme işlevini kullanan bir bölümleme şeması da oluşturmanız gerekir. Ardından, bu bölümleme şemasını kullanan tabloya kümelenmiş bir anahtar koymanız gerekir.
Bölümlemeyi ayarlama
Komut satırı SQL konusunda uzman değilim. Pfg1 (pf1 dosyasıyla) ve pfg2 (pf2 dosyasıyla) dosya gruplarını ayarlamak için SSMS arabirimini kullandım. Sonra bölümleme işlevi ve şemasını ilan ettim:
CREATE PARTITION FUNCTION IDRange1 (int)
AS RANGE LEFT FOR VALUES (10) ;
GO
CREATE PARTITION SCHEME ps_IDRange1
AS PARTITION IDRange1
TO (pfg1, pfg2)
GO
Tablo ve kümelenmiş dizin oluşturma
CREATE TABLE [IDRanges](
[ID] [int] NOT NULL
)
GO
CREATE CLUSTERED INDEX PK_IDRanges
ON dbo.IDRanges(id) ON ps_IDRange1 (ID)
GO
Bunu yaptıktan sonra, sys.partitions'ı (2005 var) sorguladığınızda, tablonun artık tablo için tek yerine iki bölüm olduğunu görürsünüz. Bu, bu tablo için bölümlemeyi tamamen uyguladığımızı gösterir.
select * from sys.partitions where object_id = object_id('IDRanges')
partition_id object_id dizin_kimliği partition_number hobt_id satırlar
-------------------- ----------- ----------- -------- -------- -------------------- --------------------
72057597780295680 770674389 1 1 72057597780295680 0
72057597780361216 770674389 1 2 72057597780361216 0
Şimdi iki bölümümüz var (her biri için bir satır sayısı ile), bir deney yapabiliriz.
Satırları ekle
INSERT INTO IDRanges ([ID]) VALUES (17)
INSERT INTO IDRanges ([ID]) VALUES (7)
Ne olduğunu görmek için sys.partitions'ı kontrol edin.
select * from sys.partitions where object_id = object_id('IDRanges')
partition_id object_id dizin_kimliği partition_number hobt_id satırlar
-------------------- ----------- ----------- -------- -------- -------------------- --------------------
72057597780295680 770674389 1 1 72057597780295680 1
72057597780361216 770674389 1 2 72057597780361216 1
Evet. Her bölümde bir satır.
Bir satırı taşıyın.
UPDATE IDRanges
SET [ID] = 8 WHERE [ID] = 17
Bölümleri kontrol edin
select * from sys.partitions where object_id = object_id('IDRanges')
partition_id object_id dizin_kimliği partition_number hobt_id satırlar
-------------------- ----------- ----------- -------- -------- -------------------- --------------------
72057597780295680 770674389 1 1 72057597780295680 2
72057597780361216 770674389 1 2 72057597780361216 0
İlk bölüm artık 1 yerine iki satıra sahiptir ve ikinci bölüm iki yerine sıfır satıra sahiptir.
Bence bu, bölümlenmiş bir tabloda kümelenmiş anahtarın değiştirilmesi sonucunda satırın otomatik olarak taşındığını doğrular.