Aracılığıyla paylaş


sys.dm_db_partition_stats (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiAzure Synapse AnalyticsAnalytics Platform Sistemi (PDW)Microsoft Fabric'te SQL Veritabanı

Mevcut veritabanındaki her bölüm için sayfa ve satır sayısı bilgilerini döndürür.

Uyarı

Bunu Azure Synapse Analytics veya Analytics Platform Sistemi'nden (PDW) çağırmak için adını sys.dm_pdw_nodes_db_partition_statskullanın. partition_id, sys.dm_pdw_nodes_db_partition_stats Azure Synapse Analytics katalog görünümündeki sys.partitions partition_id'den farklıdır. Bu söz dizimi, Azure Synapse Analytics'teki sunucusuz SQL havuzu tarafından desteklenmez.

Sütun adı Veri türü Description
partition_id bigint Bölümün kimliği. Bu, veritabanında benzersizdir. Bu, partition_id katalog görünümündeki sys.partitions değerle Azure Synapse Analytics hariç.
object_id int Bölümün parçası olduğu tablonun veya indekslenmiş görünümün nesne kimliği.
index_id int Bölümün parçası olduğu yığın veya indeksin ID'si.

0 = Yığın
1 = Kümelenmiş indeks.
> 1 = Kümelenmemiş dizin
partition_number int Dizin veya yığın içindeki 1 tabanlı bölüm numarası.
in_row_data_page_count bigint Bu bölümde sıralı veri depolamak için kullanılan sayfa sayısı. Eğer bölüm bir yığının parçasa ise, değer yığındaki veri sayfalarının sayısıdır. Eğer bölüm bir indeksin parçasa bu değer yaprak seviyesindeki sayfa sayısıdır. (B+ ağacındaki yaprak dışı sayfalar sayıya dahil edilmemiştir.) IAM (Index Allocation Map) sayfaları her iki durumda da dahil edilmez. xVelocity belleği optimize edilmiş columnstore indeksi için her zaman 0.
in_row_used_page_count bigint Bu bölümdeki satır içi verileri depolamak ve yönetmek için kullanılan toplam sayfa sayısı. Bu sayı, yaprak dışı B+ ağaç sayfalarını, IAM sayfalarını ve in_row_data_page_count sütununa dahil olan tüm sayfaları içerir. Columnstore indeksi için her zaman 0.
in_row_reserved_page_count bigint Bu bölümde satır içi veri depolamak ve yönetmek için ayrılan toplam sayfa sayısı, sayfaların kullanılıp kullanılmamasına bakılmaksızın. Columnstore indeksi için her zaman 0.
lob_used_page_count bigint Bölüm içinde satır dışı metin, ntext, image, varchar(max),nvarchar(max), varbinary(max) ve xml sütunlarını depolamak ve yönetmek için kullanılan sayfa sayısı. IAM sayfaları da dahil edilmiştir.

Bölümde columnstore indeksini depolamak ve yönetmek için kullanılan toplam LOB sayısı.
lob_reserved_page_count bigint Sayfaların kullanılıp kullanılmamasına bakılmaksızın, satır dışı metin, ntext, image, varchar(max),nvarchar(max), varbinary(max) ve xml sütunlarını depolamak ve yönetmek için ayrılan toplam sayfa sayısı. IAM sayfaları da dahil edilmiştir.

Bölümde bir columnstore indeksini depolamak ve yönetmek için ayrılan toplam LOB sayısı.
row_overflow_used_page_count bigint Bölüm içinde varchar, nvarchar, varbinary ve sql_variant sütunlarını depolamak ve yönetmek için kullanılan sayfa sayısı. IAM sayfaları da dahil edilmiştir.

Columnstore indeksi için her zaman 0.
row_overflow_reserved_page_count bigint Sayfaların kullanılıp kullanılmamasına bakılmaksızın, bölüm içinde satır taşma varchar, nvarchar, varbinary ve sql_variant sütunlarının depolanması ve yönetimi için ayrılan toplam sayfa sayısı. IAM sayfaları da dahil edilmiştir.

Columnstore indeksi için her zaman 0.
used_page_count bigint Bölüm için kullanılan toplam sayfa sayısı. Hesaplanıyor in_row_used_page_count + lob_used_page_count + row_overflow_used_page_count.
reserved_page_count bigint Bölüm için ayrılan toplam sayfa sayısı. Hesaplandığında in_row_reserved_page_count + lob_reserved_page_count + row_overflow_reserved_page_count.
row_count bigint Bölümdeki yaklaşık satır sayısı.
pdw_node_id int için geçerlidir: Azure Synapse Analytics, Analiz Platformu Sistemi (PDW)

Bu dağıtımın üzerinde olduğu düğümün tanımlayıcısı.
distribution_id int için geçerlidir: Azure Synapse Analytics, Analiz Platformu Sistemi (PDW)

Dağılımla ilişkili benzersiz sayısal ID.

Açıklamalar

Dinamik sys.dm_db_partition_stats yönetim görünümü (DMV), veritabanındaki tüm bölümler için satır içi veri depolama ve yönetmek için kullanılan alan hakkında bilgi verir. Her bölüm için bir satır gösterilir.

Çıktının dayandığı sayılar bellekte önbelleklenir veya çeşitli sistem tablolarında diskte saklanır.

Satır içi veri, LOB veri ve satır taşma verisi, bir bölümü oluşturan üç tahsis birimini temsil eder. sys.allocation_units katalog görünümü, veritabanındaki her tahsis birimi hakkında meta veri için sorgulanabilir.

Bir yığın veya indeks bölünmemişse, bir bölümden oluşur (bölüm numarası =1); bu nedenle, o yığın veya indeks için yalnızca bir satır döner. sys.partitions katalog görünümü, veritabanındaki tüm tablolar ve indekslerin her bölümü hakkında meta veri sorgulanabilir.

Bireysel bir tablo veya indeks için toplam sayı, ilgili tüm bölümlerin sayıları toplanarak elde edilebilir.

Permissions

Dinamik yönetim görünümünü VIEW DATABASE STATE sorgulamak için izinler ve VIEW DEFINITIONsys.dm_db_partition_stats izinler gerektirir. Dinamik yönetim görünümlerindeki izinler hakkında daha fazla bilgi için Dinamik Yönetim Görünümleri ve Fonksiyonları (Transact-SQL) bölümüne bakınız.

SQL Server 2022 ve üzeri için izinler

Veritabanında VIEW DATABASE PERFORMANCE STATE ve VIEW SAFETY DEFINITION izinleri gerektirir.

Örnekler

A. Veritabanındaki tüm indekslerin ve yığınların tüm bölümleri için tüm sayıları döndür

Aşağıdaki örnek, AdventureWorks2025 veritabanındaki tüm indekslerin ve yığınların tüm bölümleri için sayıları göstermektedir.

USE AdventureWorks2022;  
GO  
SELECT * FROM sys.dm_db_partition_stats;  
GO  

B. Bir tablonun tüm bölümleri ve indeksleri için tüm sayıları döndürün

Aşağıdaki örnek, tablonun HumanResources.Employee tüm bölümleri ve indeksleri için tüm sayıları gösterir.

USE AdventureWorks2022;  
GO  
SELECT * FROM sys.dm_db_partition_stats   
WHERE object_id = OBJECT_ID('HumanResources.Employee');  
GO  

C. Bir yığın veya kümelenmiş indeks için toplam kullanılan sayfaları ve toplam satır sayısını döndür

Aşağıdaki örnek, tablonun yığın veya kümelenmiş indeksi HumanResources.Employee için toplam kullanılan sayfaları ve toplam satır sayısını geri getirir. Tablo Employee varsayılan olarak bölümlenmediği için, toplamın yalnızca bir bölümü içerdiğini unutmayın.

USE AdventureWorks2022;  
GO  
SELECT SUM(used_page_count) AS total_number_of_used_pages,   
    SUM (row_count) AS total_number_of_rows   
FROM sys.dm_db_partition_stats  
WHERE object_id=OBJECT_ID('HumanResources.Employee')    AND (index_id=0 or index_id=1);  
GO