Podczas gdy myślę, że ostatnie zapytania wysłane przez Barguast mogą działać, wciąż jest z nimi problem/coś nie wyjaśnionego wystarczająco dobrze. Zasadniczo indeks_Id 0 oznacza stertę, 1 to indeks klastrowany, a 2 to wszystko inne (indeksy nieklastrowane). Problem z powyższymi zapytaniami polega na tym, że zapytanie o dane nie zadziała, jeśli tabela jest stertą (nawet jeśli w tabeli znajdują się dane). Również kwerenda dla indeksów działa, ponieważ określasz index_Id = 2 i istnieje duplikacja z powodu braku łączenia index_id między sys.indexes i sys.partitions. Jeśli dołączysz do nich, to nie będzie duplikatów w zestawie wynikowym i możesz zrobić znacznie bardziej zrozumiałą wartość parametru index_id niż w (0,1).
W każdym razie ustalone zapytania są poniżej. Dodałem również nazwę indeksu do pierwszego zapytania (zauważ, że to pole będzie puste, jeśli tabela jest stertą). Zauważ też, że nie musisz określać sprzężenia dla index_id w pierwszym zapytaniu, ponieważ where określa (0,1) i może być tylko jeden z nich (innymi słowy możesz go dodać, jeśli chcesz, ale to nie robi " t zrobić różnicę).
-- Data (table) compression (heap or clustered index)
SELECT [t].[name] AS [Table],
[i].[name] AS [Index],
[p].[partition_number] AS [Partition],
[p].[data_compression_desc] AS [Compression]
FROM [sys].[partitions] AS [p]
INNER JOIN sys.tables AS [t]
ON [t].[object_id] = [p].[object_id]
INNER JOIN sys.indexes AS [i]
ON [i].[object_id] = [p].[object_id]
WHERE [p].[index_id] in (0,1)
-- Index compression (non-clustered index)
SELECT [t].[name] AS [Table],
[i].[name] AS [Index],
[p].[partition_number] AS [Partition],
[p].[data_compression_desc] AS [Compression]
FROM [sys].[partitions] AS [p]
INNER JOIN sys.tables AS [t]
ON [t].[object_id] = [p].[object_id]
INNER JOIN sys.indexes AS [i]
ON [i].[object_id] = [p].[object_id] AND i.index_id = p.index_id
WHERE [p].[index_id] not in (0,1)
Mogłeś napisać jeden w momencie oczekiwania na odpowiedź. :-) Wiesz o sys.partitions, sys.indexes itp. Prawda? –
Nie wiem, jestem szybkim typerem. Miałem iść, ale tbh nie jestem pewien relacji między tabelami, o których wspomniałeś. – Barguast
Powinieneś dołączyć to, co wypróbowałeś w swoim pytaniu; pokazuje innym, że wkładasz trochę wysiłku i nie tylko prosi o kod (lub prosi o napisanie twojego kodu). –