Partilhar via


sys.allocation_units (Transact-SQL)

Aplica-se a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBase 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 Description
allocation_unit_id bigint ID da unidade de repartição. É exclusivo dentro de um banco de dados.
tipo tinyint Tipo de unidade de repartição:

0 = Caiu

1 = Dados em linha (todos os tipos de dados, exceto os tipos de dados LOB)

2 = Dados de objeto grande (LOB) (texto, ntext, imagem, xml, tipos de valor grande e tipos definidos pelo usuário CLR)

3 = Dados de estouro de linha
type_desc nvarchar(60) Descrição do tipo de unidade de atribuição:

LARGADO

IN_ROW_DATA

LOB_DATA

ROW_OVERFLOW_DATA
container_id bigint ID do recipiente de armazenamento associado à unidade de alocação.

Se tipo = 1 ou 3 em um índice de armazenamento de linha container_id = sys.partitions.hobt_id.

Se digitar = 1 ou 3 em um índice columnstore, container_id = sys.column_store_row_groups.delta_store_hobt_id.

Se o tipo for 2, então container_id = sys.partitions.partition_id.

0 = Unidade de alocação marcada para queda diferida
data_space_id int ID do grupo de arquivos no qual essa unidade de alocação reside.
total_pages bigint Número total de páginas atribuídas ou reservadas por esta unidade de repartição.
used_pages bigint Número total de páginas efetivamente utilizadas.
data_pages bigint Número de páginas usadas que têm:

Dados em linha

Dados LOB

Dados de overflow de linhas



Observe que o valor retornado exclui páginas de índice interno e páginas de gerenciamento de alocação.

Note

Quando você solta ou reconstrói índices grandes, solta tabelas grandes ou trunca tabelas ou partições grandes, o Mecanismo de Banco de Dados adia os locais de negociação de página reais e seus bloqueios associados até que a transação seja confirmada. As operações de queda diferida não liberam espaço alocado imediatamente. Portanto, os valores retornados por sys.allocation_units imediatamente após soltar ou truncar um objeto grande podem não refletir o espaço em disco real disponível.

Quando a Recuperação Acelerada de Banco de Dados está habilitada, a queda adiada é usada independentemente do tamanho do objeto.

Permissions

Requer adesão à função pública de . Para obter mais informações, consulte Configuração de visibilidade de metadados.

Examples

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;

Ver também

sys.partitions (Transact-SQL)
Exibições do catálogo de objetos (Transact-SQL)
Visualizações do catálogo (Transact-SQL)