Partition Yapılmış Tablodaki Partition Detaylarını Görmek
“Partition Oluşturmak” isimli makalemde nasıl partition oluşturulacağını anlattım. Bu makalede partition yapılmış bir tablonun partition’larının detaylarını gösterecek script’i paylaşacağım.
İlk olarak aşağıdaki script yardımıyla veritabanında partition yapılmış tabloları görebilirsiniz.
SELECT DISTINCT t.name FROM sys.partitions p INNER JOIN sys.tables t ON p.object_id = t.object_id WHERE p.partition_number <> 1
Daha sonra aşağıdaki script yardımıyla da partition yapılmış tablolarda partition detaylarını görebilirsiniz.
Sorguda WHERE bloğunda partition detayını görmek istediğiniz schema ismi ve tablo ismini, USE kısmında da ilgili veritabanı ismini yazmalısınız.
Örnek: Sales.SalesOrderDetail
USE [Veritabanı İsminiz] GO SELECT PartitionScheme AS [Partition Şema İsmi], PartitionFunction AS [Partition Function İsmi], FileGroupName AS [File Group İsmi], rows AS [Kayıt Sayısı], CAST(SUM(CAST(sf.size AS BIGINT))/131072.0 AS DECIMAL(19,2)) AS [Büyüklük GB], PartitionFunctionValue AS [Partition Function Değeri] FROM (select distinct ps.Name AS PartitionScheme, pf.name AS PartitionFunction,fg.name AS FileGroupName, p.rows, prv.value AS PartitionFunctionValue,fg.data_space_id from sys.indexes i join sys.partitions p ON i.object_id=p.object_id AND i.index_id=p.index_id join sys.partition_schemes ps on ps.data_space_id = i.data_space_id join sys.partition_functions pf on pf.function_id = ps.function_id left join sys.partition_range_values prv on prv.function_id = pf.function_id AND prv.boundary_id = p.partition_number join sys.allocation_units au ON au.container_id = p.hobt_id join sys.filegroups fg ON fg.data_space_id = au.data_space_id where i.object_id = object_id('Partition Yapılmış Schema.Tablo İsminiz')) a join sys.sysfiles sf ON a.data_space_id=sf.groupid GROUP BY PartitionScheme,PartitionFunction,FileGroupName,rows,PartitionFunctionValue