Używam tego skryptu SQL (który dostałem gdzieś od kogoś - nie mogę zrekonstruować, od kogo pochodzi) od wieków i pomógł mi trochę zrozumieć i określić rozmiar indeksów i tabel:
SELECT
t.name AS TableName,
i.name as indexName,
sum(p.rows) as RowCounts,
sum(a.total_pages) as TotalPages,
sum(a.used_pages) as UsedPages,
sum(a.data_pages) as DataPages,
(sum(a.total_pages) * 8) / 1024 as TotalSpaceMB,
(sum(a.used_pages) * 8) / 1024 as UsedSpaceMB,
(sum(a.data_pages) * 8) / 1024 as DataSpaceMB
FROM
sys.tables t
INNER JOIN
sys.indexes i ON t.object_id = i.object_id
INNER JOIN
sys.partitions p ON i.object_id = p.object_id AND i.index_id = p.index_id
INNER JOIN
sys.allocation_units a ON p.partition_id = a.container_id
WHERE
t.name NOT LIKE 'dt%' AND
i.object_id > 255 AND
i.index_id <= 1
GROUP BY
t.name, i.object_id, i.index_id, i.name
ORDER BY
object_name(i.object_id)
Oczywiście możesz skorzystać z innych kryteriów zamówienia, np
ORDER BY SUM(p.rows) DESC
aby uzyskać tabele z największą liczbą wierszy lub
ORDER BY SUM(a.total_pages) DESC
aby uzyskać tabele z największą liczbą używanych stron (bloków 8K).
SELECT OBJECT_SCHEMA_NAME(i.object_id) + '.' + OBJECT_NAME(i.object_id) AS TableName, ...
W SQL Server 2008 można również po prostu uruchomić standardowy raport Użycie dysku według najważniejszych tabel. Można to znaleźć, klikając prawym przyciskiem myszy bazę danych, wybierając Raporty-> Raporty standardowe i wybierając żądany raport.
źródło
To zapytanie pomaga znaleźć największą tabelę w twoim połączeniu.
źródło
Możesz również użyć następującego kodu:
źródło
Jeśli używasz Sql Server Management Studio 2008, istnieją pewne pola danych, które możesz wyświetlić w oknie szczegółów eksploratora obiektów. Po prostu przejdź do folderu tabel i wybierz go. W widoku szczegółów możesz kliknąć prawym przyciskiem myszy tytuły kolumn i dodać pola do „raportu”. Twój przebieg może się różnić, jeśli korzystasz z programu SSMS 2008 express.
źródło
Uważam, że to zapytanie jest również bardzo pomocne w SqlServerCentral, tutaj jest link do oryginalnego postu
Sql Server największe tabele
W mojej bazie danych podali różne wyniki między tym zapytaniem a pierwszą odpowiedzią.
Mam nadzieję, że ktoś uzna to za przydatne
źródło
Odpowiedź @ marc_s jest bardzo dobra i używam jej od kilku lat. Zauważyłem jednak, że skrypt pomija dane w niektórych indeksach magazynu kolumn i nie wyświetla pełnego obrazu. Np. Kiedy zrobisz to
SUM(TotalSpace)
ze skryptem i porównasz go z właściwością całkowitej bazy danych w Management Studio, liczby w moim przypadku nie są zgodne (Management Studio pokazuje większe liczby). Zmodyfikowałem skrypt, aby rozwiązać ten problem i nieco go rozszerzyłem:Mam nadzieję, że komuś to pomoże. Ten skrypt został przetestowany na dużych bazach danych o szerokości TB z setkami różnych tabel, indeksów i schematów.
źródło