Compartilhar via


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)