sys.allocation_units (Transact-SQL)

Применимо к:База данныхSQL Server Azure SQL Управляемый экземпляр SQL Azure

Содержит одну строку для каждой единицы распределения в базе данных.

Имя столбца Тип данных Описание
allocation_unit_id bigint Идентификатор единицы распределения. Уникален в базе данных.
тип tinyint Тип единицы распределения:

0 = удаленная;

1 = внутристрочные данные (все типы данных, за исключением типов данных LOB);

2 = данные больших объектов (text, ntext, image, xml, типы больших значений и определяемые пользователем типы CLR)

3 = превышающие размер страницы данные строки.
type_desc nvarchar(60) Описание типа единицы распределения:

УПАЛ

IN_ROW_DATA

LOB_DATA

ROW_OVERFLOW_DATA
container_id bigint Идентификатор контейнера хранения, связанного с единицей распределения.

Если тип = 1 или 3 в индексе rowstore container_id = sys.partitions.hobt_id.

Если тип = 1 или 3 в индексе columnstore, container_id = sys.column_store_row_groups.delta_store_hobt_id.

Если тип type равен 2, то идентификатор container_id = sys.partitions.partition_id.

0 = единица распределения помечена для отложенного удаления
data_space_id int Идентификатор файловой группы, в которой находится эта единица распределения.
total_pages bigint Общее количество страниц, выделенное или зарезервированное единицей распределения.
used_pages bigint Общее количество используемых страниц.
data_pages bigint Количество страниц, включающих:

In-row data

LOB data

Row-overflow data



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

Примечание

При удалении или перестроении больших индексов, удалении больших таблиц или усечении больших таблиц или секций ядро СУБД откладывает фактическое освобождение страницы и связанные с ними блокировки до фиксации транзакции. Отложенные операции удаления не освобождают выделенное место немедленно. Поэтому значения, возвращаемые представлением каталога sys.allocation_units сразу после удаления или усечения большого объекта, могут не отражать реальный объем доступного места на диске.

Если включено ускоренное восстановление базы данных , используется отложенное удаление независимо от размера объекта.

Разрешения

Необходимо быть членом роли public. Дополнительные сведения см. в разделе Metadata Visibility Configuration.

Примеры

Определение пространства, используемого объектом и типом единицы распределения

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

SELECT t.object_id AS ObjectID,
       OBJECT_NAME(t.object_id) AS ObjectName,
       SUM(u.total_pages) * 8 AS Total_Reserved_kb,
       SUM(u.used_pages) * 8 AS Used_Space_kb,
       u.type_desc AS TypeDesc,
       MAX(p.rows) AS RowsCount
FROM sys.allocation_units AS u
JOIN sys.partitions AS p ON u.container_id = p.hobt_id
JOIN sys.tables AS t ON p.object_id = t.object_id
GROUP BY t.object_id,
         OBJECT_NAME(t.object_id),
         u.type_desc
ORDER BY Used_Space_kb DESC,
         ObjectName;

См. также:

sys.partitions (Transact-SQL)
Представления каталога объектов (Transact-SQL)
Представления каталога (Transact-SQL)