sys.dm_db_partition_stats
Возвращает страницу и информацию о количестве строк для каждой секции текущей базы данных.
Имя столбца |
Тип данных |
Описание |
---|---|---|
partition_id |
bigint |
Идентификатор секции. Является уникальным в пределах базы данных. Данное значение совпадает со значением partition_id представления каталога sys.partitions |
object_id |
int |
Идентификатор таблицы или индексированного представления, в которое входит данная секция. |
index_id |
int |
Идентификатор кучи или индекса, в который входит данная секция. 0 = Куча 1 = Кластеризованный индекс. |
partition_number |
int |
Номер секции внутри индекса или кучи (нумерация начинается с 1). |
in_row_data_page_count |
bigint |
Количество страниц, используемых для хранения данных, содержащихся в строках данной секции. Если секция является частью кучи, то данное значение отображает количество страниц данных в куче. Если секция является частью индекса, то данное значение отображает количество страниц на конечном уровне. (неконечные страницы сбалансированного дерева при подсчете не учитываются.) Страницы карты распределения индекса (IAM) также не учитываются при подсчете. |
in_row_used_page_count |
bigint |
Количество страниц, используемых для хранения и управления данными, содержащимися в строках данной секции. В данном случае при подсчете учитываются неконечные страницы сбалансированного дерева, IAM-страницы, а также все страницы, включенные в столбец in_row_data_page_count. |
in_row_reserved_page_count |
bigint |
Общее количество страниц, зарезервированных для хранения и управления данными в данной секции (учитываются как используемые, так и не используемые страницы). |
lob_used_page_count |
bigint |
Количество страниц, используемых для хранения и управления данными типа text, ntext, image, varchar(max), nvarchar(max), varbinary(max) и xml, хранящимися вне строк секции. IAM-страницы учитываются. |
lob_reserved_page_count |
bigint |
Общее количество страниц, зарезервированных для хранения и управления данными типа text, ntext, image, varchar(max), nvarchar(max), varbinary(max) и xml, хранящимися вне строк секции (учитываются как используемые, так и не используемые страницы). IAM-страницы учитываются. |
row_overflow_used_page_count |
bigint |
Количество страниц, используемых для хранения и управления данными типа varchar, nvarchar, varbinary и sql_variant, хранящимися вне строк секции. IAM-страницы учитываются. |
row_overflow_reserved_page_count |
bigint |
Общее количество страниц, зарезервированных для хранения и управления данными типа varchar, nvarchar, varbinary и sql_variant, хранящимися вне строк секции (учитываются как используемые, так и не используемые страницы). IAM-страницы учитываются. |
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 |
Количество строк в секции. |
Замечания
Оператор sys.dm_db_partition_stats используется для отображения сведений о дисковом пространстве, используемом для хранения и управления данными, находящимися в строках, данными LOB и превышающие размер страницы данные строки во всех секциях базы данных. Для каждой секции отображается одна строка.
Результаты подсчетов, на которых основаны выходные данные, хранятся в оперативной памяти или записываются в различные таблицы на жестком диске.
Данные в строках, данные LOB, а также данные строки, превышающие размер страницы, представляют собой три типа единиц распределения, из которых состоит секция. Дополнительные сведения о единицах распределения см. в разделе Организация таблиц и индексов. Из представления каталога sys.allocation_units можно извлекать метаданные по каждой единице распределения базы данных.
Если куча или индекс не имеют делений, то они состоят из одной секции (с номером 1); поэтому для каждой такой кучи или индекса возвращается только одна строка. Дополнительные сведения о секциях см. в разделе Организация таблиц и индексов. Из представления каталога sys.partitions можно извлекать метаданные по каждой секции таблиц и индексов базы данных.
Общее количество секций таблицы или индекса может быть получено путем суммирования результатов для всех секций.
Разрешения
Для работы с динамическим административным представлением sys.dm_db_partition_stats требуется разрешение VIEW DATABASE STATE. Дополнительные сведения о предоставлении разрешений для динамических административных представлений см. в разделе Динамические административные представления и функции (Transact-SQL).
Примеры
А. Выведение результатов подсчета для всех секций во всех индексах и кучах базы данных
В следующем примере выводятся результаты подсчета для всех секций во всех индексах и кучах базы данных AdventureWorks.
USE AdventureWorks;
GO
SELECT * FROM sys.dm_db_partition_stats;
GO
Б. Выведение результатов подсчета для всех секций таблицы и ее индексов
В следующем примере выводятся результаты подсчета для всех секций таблицы HumanResources.Employee и ее индексов.
USE AdventureWorks;
GO
SELECT * FROM sys.dm_db_partition_stats
WHERE object_id = OBJECT_ID('HumanResources.Employee');
GO
В. Выведение общего количества используемых страниц и общего количества строк для кучи или кластеризованного индекса
В следующем примере выводится общее количество используемых страниц и общее количество строк для кучи или кластеризованного индекса таблицы HumanResources.Employee. Сумма состоит из единственной секции, так как таблица Employee не секционирована по умолчанию.
USE AdventureWorks;
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
См. также