데이터베이스에있는 다양한 HoBT (정렬 및 비 정렬)에 대한 할당 단위를 포함하는 데이터베이스 파일에 대한 세부 정보를 얻고 싶었습니다.
항상 사용했던 쿼리 (아래 참조)는 파일 그룹당 여러 데이터 파일을 만들기 시작할 때까지 잘 작동했으며 파일 그룹 수준만큼 세분화하는 방법 만 알아낼 수있었습니다.
select
SchemaName = sh.name,
TableName = t.name,
IndexName = i.name,
PartitionNumber = p.partition_number,
IndexID = i.index_id,
IndexDataspaceID = i.data_space_id,
AllocUnitDataspaceID = au.data_space_id,
PartitionRows = p.rows
from sys.allocation_units au
join sys.partitions p
on au.container_id = p.partition_id
join sys.indexes i
on i.object_id = p.object_id
and i.index_id = p.index_id
join sys.tables t
on p.object_id = t.object_id
join sys.schemas sh
on t.schema_id = sh.schema_id
where sh.name != 'sys'
and au.type = 2
union all
select
sh.name,
t.name,
i.name,
p.partition_number,
i.index_id,
i.data_space_id,
au.data_space_id,
p.rows
from sys.allocation_units au
join sys.partitions p
on au.container_id = p.hobt_id
join sys.indexes i
on i.object_id = p.object_id
and i.index_id = p.index_id
join sys.tables t
on p.object_id = t.object_id
join sys.schemas sh
on t.schema_id = sh.schema_id
where sh.name != 'sys'
and au.type in (1,3)
order by t.name, i.index_id,p.partition_number;
그러나 할당 단위를 데이터 공간과 궁극적으로 파일 그룹과 관련시킬 수 있기 때문에 파일 그룹에 여러 파일이 있으면이 쿼리가 작동하지 않습니다. 파일 그룹에서 어떤 파일이 할당 단위를 포함하는지 더 자세히 식별하는 데 사용할 수있는 다른 DMV 또는 카탈로그가 있는지 알고 싶습니다.
이 질문의 뒤에 질문은 파티션 구조를 압축하는 실제 효과를 평가하려고한다는 것입니다. 이 정보를 얻기 위해 FILEPROPERTY(FileName,'SpaceUsed')
파일에 전후 사용 을 할 수 있다는 것을 알고 sys.allocation_units.used_pages/128.
있지만 연습 자체로 인해 특정 할당 단위가 포함 된 특정 파일을 식별 할 수 있는지 궁금해했습니다.
나는 %%physloc%%
그것이 도움이 될 수 있기를 희망하면서 엉망이되었지만 , 내가 찾고있는 것을 얻지 못합니다. 아래 링크는 Aaron Bertrand 가 제공 한 것입니다 .
- 내 행은 어디에 있습니까? – %% physloc %% 가상 열 (sqlity.net) 사용
- SQL 서버 2008 : 새로운 (문서화) 물리적 행 로케이터 기능 에 의해 폴 랜달