sys.allocation_units(Transact-SQL)
적용 대상: Microsoft Fabric의 SQL ServerAzure SQL Database Azure SQL Managed Instance SQL 데이터베이스
데이터베이스의 각 할당 단위에 대해 한 행씩 있습니다.
열 이름 | 데이터 형식 | 설명 |
---|---|---|
allocation_unit_id | bigint | 할당 단위의 ID입니다. 데이터베이스 내에서 고유합니다. |
type | tinyint | 할당 단위 유형: 0 = 삭제됨 1 = 행 내 데이터(LOB 데이터 형식을 제외한 모든 데이터 형식) 2 = LOB(큰 개체) 데이터(텍스트, ntext, 이미지, xml, 큰 값 형식 및 CLR 사용자 정의 형식) 3 = 행 오버플로 데이터 |
type_desc | nvarchar(60) | 할당 단위 유형에 대한 설명: 떨어졌다 IN_ROW_DATA LOB_DATA ROW_OVERFLOW_DATA |
container_id | bigint | 할당 단위와 연결된 스토리지 컨테이너의 ID입니다. rowstore 인덱스 container_id = sys.partitions.hobt_id 형식이 1 또는 3이면 columnstore 인덱스의 유형 = 1 또는 3이면 container_id = sys.column_store_row_groups.delta_store_hobt_id입니다. 형식이 2이면 container_id = sys.partitions.partition_id. 0 = 삭제가 지연된 것으로 표시된 할당 단위 |
data_space_id | int | 이 할당 단위가 있는 파일 그룹의 ID입니다. |
전체 페이지 | bigint | 이 할당 단위에서 할당하거나 예약한 총 페이지 수입니다. |
used_pages | bigint | 실제로 사용 중인 총 페이지 수입니다. |
data_pages | bigint | 다음을 포함하는 사용된 페이지 수입니다. 행 내부 데이터 LOB 데이터 행 오버플로 데이터 반환된 값은 내부 인덱스 페이지 및 할당 관리 페이지를 제외합니다. |
참고 항목
큰 인덱스를 삭제하거나 다시 작성하거나 큰 테이블을 삭제하거나 큰 테이블 또는 파티션을 자르면 데이터베이스 엔진 트랜잭션이 커밋될 때까지 실제 페이지 할당 취소 및 관련 잠금이 지연됩니다. 지연된 삭제 작업은 할당된 공간을 즉시 해제하지 않습니다. 따라서 큰 개체를 삭제하거나 잘린 직후 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)