Поделиться через


sys.dm_db_partition_stats (Transact-SQL)

Применимо: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure azure Synapse Analytics Analytics Platform System (PDW)

Возвращает страницу и сведения о количестве строк для всех секций текущей базы данных.

Примечание.

Чтобы вызвать это из Azure Synapse Analytics или Analytics Platform System (PDW), используйте имя sys.dm_pdw_nodes_db_partition_stats. Partition_id sys.dm_pdw_nodes_db_partition_stats отличаются от partition_id в sys.partitions представлении каталога для Azure Synapse Analytics. Этот синтаксис не поддерживается бессерверным пулом SQL в Azure Synapse Analytics.

Имя столбца Тип данных Description
partition_id bigint Идентификатор секции. Является уникальным в пределах базы данных. Это то же значение, что partition_id и в sys.partitions представлении каталога, за исключением Azure Synapse Analytics.
object_id int Идентификатор таблицы или индексированного представления, в которое входит данная секция.
index_id int Идентификатор кучи или индекса, в который входит данная секция.

0 = куча;
1 = Кластеризованный индекс.
> 1 = некластеризованный индекс
partition_number int Номер секции внутри индекса или кучи (нумерация начинается с 1).
in_row_data_page_count bigint Количество страниц, используемых для хранения данных, содержащихся в строках данной секции. Если секция является частью кучи, то данное значение отображает количество страниц данных в куче. Если секция является частью индекса, то данное значение отображает количество страниц на конечном уровне. (Небезопасные страницы в дереве B+ не включены в число.) Страницы IAM (карта распределения индекса) не включаются в любом случае. Всегда 0 для оптимизированного для памяти xVelocity индекса columnstore.
in_row_used_page_count bigint Количество страниц, используемых для хранения и управления данными, содержащимися в строках данной секции. Это число включает небезопасные страницы дерева B+, страницы IAM и все страницы, включенные в столбец in_row_data_page_count . Всегда равно 0 для индекса columnstore.
in_row_reserved_page_count bigint Общее количество страниц, зарезервированных для хранения и управления данными в данной секции (учитываются как используемые, так и не используемые страницы). Всегда равно 0 для индекса columnstore.
lob_used_page_count bigint Количество страниц, используемых для хранения текста вне строк, ntext, image, varchar(max),nvarchar(max), varbinary(max)и xml-столбцов в секции. IAM-страницы учитываются.

Количество больших объектов (LOB), используемых для хранения и управления данными индекса columnstore в секции.
lob_reserved_page_count bigint Общее количество страниц, зарезервированных для хранения и управления текстом вне строки, ntext, image, varchar(max), nvarchar(max), varbinary(max)и xml-столбцов в секции независимо от того, используются ли страницы. IAM-страницы учитываются.

Общее количество больших объектов (LOB), зарезервированных для хранения и управления индексом columnstore в секции.
row_overflow_used_page_count bigint Количество страниц, используемых для хранения и управления varchar строки переполнения строк, nvarchar, varbinary и sql_variant столбцов в разделе. IAM-страницы учитываются.

Всегда равно 0 для индекса columnstore.
row_overflow_reserved_page_count bigint Общее количество страниц, зарезервированных для хранения и управления varchar, nvarchar, varbinary и sql_variant столбцов в секции независимо от того, используются ли страницы. IAM-страницы учитываются.

Всегда равно 0 для индекса columnstore.
used_page_count bigint Общее число страниц, используемых в секции. Вычисляется как in_row_used_page_count + lob_used_page_count row_overflow_used_page_count. +
reserved_page_count bigint Общее число страниц, зарезервированных в секции. Вычисляется как in_row_reserved_page_count + lob_reserved_page_count row_overflow_reserved_page_count. +
row_count bigint Приблизительное количество строк в секции.
pdw_node_id int Область применения: Azure Synapse Analytics, Analytics Platform System (PDW)

Идентификатор узла, на который находится данное распределение.
distribution_id int Область применения: Azure Synapse Analytics, Analytics Platform System (PDW)

Уникальный числовой идентификатор, связанный с распределением.

Замечания

В sys.dm_db_partition_stats динамическом представлении управления (DMV) отображаются сведения о пространстве, используемом для хранения бизнес-данных в строке и управления данными бизнес-аналитики строк, а также данные о переполнении строк для всех секций в базе данных. Для каждой секции отображается одна строка.

Количество, на котором основаны выходные данные, кэшируются в памяти или хранятся на диске в различных системных таблицах.

Данные в строках, данные LOB, а также данные строки, превышающие размер страницы, представляют собой три типа единиц распределения, из которых состоит секция. Из представления каталога sys.allocation_units можно запрашивать метаданные по каждой единице распределения базы данных.

Если куча или индекс не имеют делений, то они состоят из одной секции (с номером 1); поэтому для каждой такой кучи или индекса возвращается только одна строка. Из представления каталога sys.partitions можно запрашивать метаданные по каждой секции таблиц и индексов базы данных.

Общее количество секций таблицы или индекса может быть получено путем суммирования результатов для всех секций.

Разрешения

Требуется VIEW DATABASE STATE и VIEW DEFINITION разрешения для запроса динамического административного sys.dm_db_partition_stats представления. Более подробные сведения о разрешениях динамических административных представлений см. в разделе Динамические административные представления и функции (Transact-SQL).

Разрешения для SQL Server 2022 и более поздних версий

Требуется разрешение VIEW DATABASE PERFORMANCE STATE и VIEW SECURITY DEFINITION в базе данных.

Примеры

А. Возвращает все счетчики для всех секций всех индексов и куч в базе данных.

В следующем примере показаны все счетчики для всех секций всех индексов и куч в базе данных AdventureWorks2022.

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

B. Возвращает все счетчики для всех секций таблицы и его индексов.

В следующем примере выводятся результаты подсчета для всех секций таблицы HumanResources.Employee и ее индексов.

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

В. Возвращает общее количество используемых страниц и общее количество строк для кучи или кластеризованного индекса

В следующем примере выводится общее количество используемых страниц и общее количество строк для кучи или кластеризованного индекса таблицы HumanResources.Employee. Сумма состоит из единственной секции, так как таблица Employee не секционирована по умолчанию.

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