Ich habe eine SQL Server 2008 R2-Datenbank, die von mehreren bereitgestellten Programmen verwendet wird.
Frage: Gibt es eine einfache Möglichkeit, anzuzeigen, wie viel Speicherplatz jede Tabelle für alle Tabellen in der Datenbank belegt, und logischen Speicherplatz von Speicherplatz zu unterscheiden?
Wenn ich SSMS (Management Studio) verwende, lauten die für die Datenbank angezeigten Speichereigenschaften 167 MB, wobei 3 MB "verfügbar" sind (ungefähr die richtige Größe, aber ich bin besorgt über die verfügbaren 3 MB - ist dies eine zu bedenkende Grenze vorausgesetzt, ich weiß, dass ich genug Speicherplatz habe?)
Ich kann in jeden Tisch bohren, aber das dauert ewig.
Ich weiß, dass ich meine eigenen Abfragen schreiben und testen kann, aber ich würde gerne wissen, ob es bereits eine einfache (integrierte?) Möglichkeit gibt, dies zu tun.
Es wurde auf Stapelüberlauf beantwortet :
quelle
Die mit @Nelson verknüpfte und von @Nelson kopierte Abfrage ist ungenau: Indizierte Ansichten, Volltextindizes, XML-Indizes usw. werden ignoriert.
Wenn Sie eine Abfrage wünschen, die alles enthält, ohne
sp_spaceused
über ausgeführt zu werdensp_MSForEachTable
, habe ich bereits zwei Variationen davon veröffentlicht (eine hier auf DBA.StackExchange und die andere auf StackOverflow), damit ich sie hier nicht kopiere:Pro Tabelle / indizierte Ansicht: sp_spaceused - So messen Sie die Größe in GB in allen Tabellen in SQL
Pro Index: Speicherplatznutzung für sys.allocation_units und sp_spaceused
quelle
Nur zum Spaß, hier ist eine Abfrage, die die gleichen Daten wie der Bericht in Nateirvins Antwort generiert
Okay, weil ich mich selbst wirklich hasse, habe ich eine Abfrage geschrieben, die die Ergebnisse des Berichts generiert, ihn als HTML-Tabelle formatiert und als E-Mail sendet. Das Abgleichen der Hintergrundfarben des Berichts bleibt dem Leser als Übung.
quelle