Jak w MS SQL sprawdzić ile zajmują poszczególne tabele

Bazy danych mają tendencję rośnięcia do niebotycznych rozmiarów, szczególnie gdy trafiają do nich dane zbierane za pomocą botów lub scraperów. Wtedy informacja na temat wielkości bazy jest niewystarczająca i konieczne może okazać się sprawdzenie rozmiarów poszczególnych tabel.

Mając bardziej szczegółowe informacje można lepiej zaplanować kasowanie niepotrzebnych bądź nieaktualnych wierszy bądź opróżnianie całych tabel. I tak poniższe zapytanie wyświetli w megabajtach rozmiar każdej z tabel poczynając od największych. Zadziała ono zarówno w przypadku tradycyjnych baz oraz Azure SQL.

select sys.objects.name, sum(reserved_page_count) * 8.0 / 1024 [SizeInMB]
from sys.dm_db_partition_stats, sys.objects
where sys.dm_db_partition_stats.object_id = sys.objects.object_id
group by sys.objects.name
order by sum(reserved_page_count) desc