Miałem nadzieję uzyskać szczegółowy widok, które pliki bazy danych zawierały, które jednostki alokacji dla różnych HoBT (zarówno wyrównanych, jak i niezrównanych) żyjących w bazie danych.
Zapytanie, którego zawsze używałem (patrz poniżej), dobrze mi służyło, dopóki nie zaczęliśmy tworzyć wielu plików danych na grupę plików i jestem w stanie dowiedzieć się, jak uzyskać stopień szczegółowości na poziomie grupy plików.
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;
Jednak to zapytanie nie będzie działać, gdy w grupie plików jest wiele plików, ponieważ mogę uzyskać tylko tyle, aby powiązać jednostkę alokacji z przestrzenią danych i, ostatecznie, aplikacjami. Chciałbym wiedzieć, czy istnieje inny DMV lub katalog, którego mi brakuje, którego mogę użyć do dalszego zidentyfikowania, który plik w grupie plików zawiera jednostkę alokacji.
Pytanie kryjące się za tym pytaniem polega na tym, że próbuję ocenić rzeczywiste skutki kompresji struktur partycjonowanych. Wiem, że mogę użyć pliku przed i po FILEPROPERTY(FileName,'SpaceUsed')
nim oraz przed i po, sys.allocation_units.used_pages/128.
aby uzyskać te informacje, ale samo ćwiczenie sprawiło, że zastanawiałem się, czy mogę zidentyfikować konkretny plik zawierający określoną jednostkę alokacji.
Mieszałem się %%physloc%%
w nadziei, że to może pomóc, ale nie do końca rozumiem, czego szukam. Poniższe linki zostały dostarczone przez Aarona Bertranda :