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)