Tôi đã hy vọng có được một cái nhìn chi tiết về các tệp cơ sở dữ liệu chứa các đơn vị phân bổ nào cho các HoBT khác nhau (cả liên kết và không liên kết) sống trong cơ sở dữ liệu.
Truy vấn tôi luôn sử dụng (xem bên dưới) đã phục vụ tốt cho đến khi chúng tôi bắt đầu tạo nhiều tệp dữ liệu cho mỗi nhóm và tôi chỉ có thể tìm ra cách để có được mức độ chi tiết như cấp độ nhóm.
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;
Tuy nhiên, truy vấn này sẽ không hoạt động khi có nhiều tệp trong một nhóm fileg vì tôi chỉ có thể liên quan đến một đơn vị phân bổ đến một không gian dữ liệu và cuối cùng là một filegroup. Tôi muốn biết nếu có một DMV hoặc danh mục khác mà tôi thiếu mà tôi có thể sử dụng để xác định thêm tập tin nào trong nhóm fileg chứa đơn vị phân bổ.
Câu hỏi đằng sau câu hỏi này là tôi đang cố gắng đánh giá hiệu quả thực tế của việc nén các cấu trúc phân vùng. Tôi biết rằng tôi có thể thực hiện trước và sau khi sử dụng FILEPROPERTY(FileName,'SpaceUsed')
cho tệp và trước và sau sys.allocation_units.used_pages/128.
để có được thông tin này, nhưng bản thân bài tập khiến tôi tự hỏi liệu tôi có thể xác định tệp cụ thể có chứa đơn vị phân bổ cụ thể không.
Tôi đã %%physloc%%
loay hoay với hy vọng nó có thể giúp ích, nhưng nó không hoàn toàn giúp tôi tìm được thứ gì. Các liên kết dưới đây được cung cấp bởi Aaron Bertrand :