Ich hatte gehofft, eine granulare Ansicht zu erhalten, welche Datenbankdateien welche Zuordnungseinheiten für die verschiedenen HoBTs (sowohl ausgerichtet als auch nicht ausgerichtet) enthielten, die in einer Datenbank leben.
Die Abfrage, die ich immer verwendet habe (siehe unten), hat mir gute Dienste geleistet, bis wir angefangen haben, mehrere Datendateien pro Dateigruppe zu erstellen, und ich kann nur herausfinden, wie man so detailliert wie die Dateigruppenebene wird.
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;
Diese Abfrage funktioniert jedoch nicht, wenn eine Dateigruppe mehrere Dateien enthält, da ich nur eine Zuordnungseinheit zu einem Datenbereich und schließlich zu einer Dateigruppe herstellen kann. Ich würde gerne wissen, ob es eine andere DMV oder einen anderen Katalog gibt, mit denen ich genauer identifizieren kann, welche Datei in der Dateigruppe eine Zuordnungseinheit enthält.
Die Frage hinter dieser Frage ist, dass ich versuche, die tatsächlichen Auswirkungen der Komprimierung partitionierter Strukturen zu bewerten. Ich weiß, dass ich FILEPROPERTY(FileName,'SpaceUsed')
für die Datei eine Vorher-Nachher -Verwendung und für die Datei eine Vorher-Nachher-Verwendung ausführen kann sys.allocation_units.used_pages/128.
, um diese Informationen abzurufen, aber die Übung selbst hat mich gefragt, ob ich die bestimmte Datei identifizieren kann, die eine bestimmte Zuordnungseinheit enthält.
Ich habe %%physloc%%
in der Hoffnung herumgespielt, dass es helfen könnte, aber es bringt mich nicht ganz auf das, wonach ich suche. Die folgenden Links wurden von Aaron Bertrand bereitgestellt :