Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Belirtilen herhangi bir bölümleme işlevi için bölümleme sütun değerleri kümesinin eşlenebileceği bölüm numarasını döndürür.
Transact-SQL söz dizimi kuralları
Sözdizimi
[ database_name. ] $PARTITION.partition_function_name(expression)
Bağımsız değişken
database_name
Bölüm işlevini içeren veritabanının adı.
partition_function_name
Bölümleme sütunu değerleri kümesinin uygulandığı mevcut bölümleme işlevlerinin adı.
ifade
Veri türünün ilgili bölümleme sütununun veri türüyle eşleşmesi veya örtük olarak dönüştürülebilir olması gereken bir ifadesi. Bu parametre, şu anda partition_function_namekatılan bölümleme sütununun adı da olabilir.
Dönüş türleri
int
Açıklamalar
$PARTITION
, 1
ile bölüm işlevinin bölüm sayısı arasında bir int değeri döndürür.
$PARTITION
, değerin bölümlenmiş bir tabloda veya bölüm işlevini kullanan dizinde mevcut olup olmadığına bakılmaksızın geçerli herhangi bir değerin bölüm numarasını döndürür.
Örnekler
A. Bölümleme sütunu değerleri kümesinin bölüm numarasını alma
Bu örnek, bir tabloyu veya dizini dört bölüme bölecek ARALIK SOL kullanarak RangePF1
bir bölüm işlevi oluşturur.
$PARTITION
, RangePF1
bölümleme sütununu temsil eden 10
değerinin tablonun bölüm 1
yerleştirileceğini belirlemek için kullanılır.
CREATE PARTITION FUNCTION RangePF1(INT)
AS RANGE LEFT
FOR VALUES (10, 100, 1000);
GO
SELECT $PARTITION.RangePF1 (10);
GO
B. Bölümlenmiş bir tablo veya dizinin her bir boş bölümündeki satır sayısını alma
Bu örnekte, veri içeren tablonun her bir bölümündeki satır sayısını döndürmek için $PARTITION
nasıl kullanılacağı gösterilmektedir.
Not
Bu örneği yürütmek için önce önceki örnekteki kodu kullanarak bölüm işlevi RangePF1
oluşturmanız gerekir.
RangePF1
bölüm işlevi içinRangePS1
bir bölüm düzeni oluşturun.CREATE PARTITION SCHEME RangePS1 AS PARTITION RangePF1 ALL TO ('PRIMARY'); GO
bölümleme sütunu olarak
col1
RangePS1
bölüm düzenindedbo.PartitionTable
bir tablo oluşturun.CREATE TABLE dbo.PartitionTable ( col1 INT PRIMARY KEY, col2 CHAR (20) ) ON RangePS1 (col1); GO
dbo.PartitionTable
tablosuna dört satır ekleyin. Bu satırlar bölüm işleviRangePF1
tanımına göre bölümlere eklenir:1
ve10
bölüm1
bölümüne,500
ve1000
3
gidin.INSERT dbo.PartitionTable (col1, col2) VALUES (1, 'a row'), (10, 'another row'), (500, 'another row'), (1000, 'another row'); GO
dbo.PartitionTable
sorgular veGROUP BY
yan tümcesindeki$PARTITION.RangePF1(col1)
kullanarak her bölümdeki veri içeren satır sayısını sorgular.SELECT $PARTITION.RangePF1 (col1) AS Partition, COUNT(*) AS [COUNT] FROM dbo.PartitionTable GROUP BY $PARTITION.RangePF1 (col1) ORDER BY Partition; GO
Sonuç kümesi aşağıdadır.
Bölüm | SAYMAK |
---|---|
1 | 2 |
3 | 2 |
Satırlar, var olan ancak veri içermeyen 2
bölüm numarası için döndürülmez.
C. Bölümlenmiş tablo veya dizinin bir bölümündeki tüm satırları döndürme
Aşağıdaki örnek, PartitionTable
tablonun 3. bölümündeki tüm satırları döndürür.
SELECT col1, col2
FROM dbo.PartitionTable
WHERE $PARTITION.RangePF1 (col1) = 3;
Sonuç kümesi aşağıdadır.
sütun1 | col2 |
---|---|
500 |
başka bir satır |
1000 |
başka bir satır |
İlgili içerik
- Bölümlenmiş tabloları ve dizinleri
- CREATE PARTITION FUNCTION (Transact-SQL)
- bölüm işlevini değiştirme
- Bölüm düzenini değiştirme
- sys.partition_functions (Transact-SQL)
- sys.partition_schemes (Transact-SQL)