sys.allocation_units (Transact-SQL)
Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Banco de Dados SQL no Microsoft Fabric
Contém uma linha para cada unidade de alocação no banco de dados.
Nome da coluna | Tipo de dados | Descrição |
---|---|---|
allocation_unit_id | bigint | ID da unidade de alocação. É exclusivo em um banco de dados. |
tipo | tinyint | Tipo de unidade de alocação: 0 = Descartado 1 = Dados em linha (todos os tipos de dados, exceto LOB) 2 = Dados de objeto grande (LOB) (texto, ntext, imagem, xml, tipos de valor grande e tipos CLR definidos pelo usuário) 3 = Dados do estouro de linha |
type_desc | nvarchar(60) | Descrição do tipo de unidade de alocação: DEIXOU CAIR IN_ROW_DATA LOB_DATA ROW_OVERFLOW_DATA |
container_id | bigint | ID do contêiner de armazenamento associado à unidade de alocação. Se type = 1 ou 3 em um índice rowstore container_id = sys.partitions.hobt_id. Se type = 1 ou 3 em um índice columnstore, container_id = sys.column_store_row_groups.delta_store_hobt_id. Se type for 2, container_id = sys.partitions.partition_id. 0 = Unidade de alocação marcada para descarte diferido |
data_space_id | int | ID do grupo de arquivos no qual reside a unidade de alocação. |
total_pages | bigint | Número total de páginas alocadas ou reservadas pela unidade de alocação. |
used_pages | bigint | Número total de páginas realmente em uso. |
data_pages | bigint | Número de páginas usadas que têm: Dados em linha Dados LOB Dados do estouro de linha Observe que o valor retornado exclui páginas de índice internas e páginas de gerenciamento de alocação. |
Observação
Quando você descarta ou recria índices grandes, descarta tabelas grandes ou trunca tabelas ou partições grandes, o Mecanismo de Banco de Dados adia as desalocações de página reais e seus bloqueios associados até que a transação seja confirmada. Operações de cancelamento adiadas não libertam espaço alocado imediatamente. Portanto os valores retornados por sys.allocation_units imediatamente após o descarte ou truncamento de um objeto grande podem não refletir o espaço em disco realmente disponível.
Quando a Recuperação Acelerada de Banco de Dados está habilitada, a queda adiada é usada independentemente do tamanho do objeto.
Permissões
Requer associação à função pública . Para obter mais informações, consulte Metadata Visibility Configuration.
Exemplos
Determinar o espaço usado por objeto e tipo de uma unidade de alocação
A consulta a seguir retorna todas as tabelas de usuário em um banco de dados e a quantidade de espaço usada em cada uma, por tipo de unidade de alocação.
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;
Confira também
sys.partitions (Transact-SQL)
Exibições do catálogo de objeto (Transact-SQL)
Exibições do Catálogo (Transact-SQL)