sys.allocation_units (Transact-SQL)
Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure
Содержит одну строку для каждой единицы распределения в базе данных.
Имя столбца | Тип данных | Description |
---|---|---|
allocation_unit_id | bigint | Идентификатор единицы распределения. Уникален в базе данных. |
type | tinyint | Тип единицы распределения: 0 = удаленная; 1 = внутристрочные данные (все типы данных, за исключением типов данных LOB); 2 = данные больших объектов (LOB) (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)