sys.allocation_units (Transact-SQL)
Aplica-se a: SQL ServerBanco de Dados SQL do Azure Instância Gerenciada de SQL do Azure
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)