ฉันหวังว่าจะได้รับมุมมองที่ละเอียดว่าไฟล์ฐานข้อมูลใดมีหน่วยการจัดสรรใดสำหรับ 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 :