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