Größe aller Tabellen in der Datenbank ermitteln
Habe ich geerbt, eine ziemlich große SQL-Server-Datenbank. Es scheint mehr Platz als ich erwarten würde, angesichts der Daten, die es enthält.
Gibt es eine einfache Möglichkeit, um festzustellen, wie viel Speicherplatz auf der Festplatte jede Tabelle wird in Anspruch genommen?
InformationsquelleAutor der Frage Eric | 2011-10-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
InformationsquelleAutor der Antwort marc_s
Wenn Sie SQL Server Management Studio (SSMS), anstelle der Ausführung einer Abfrage (die in meinem Fall zurückgegeben doppelte Zeilen) Sie können einen standard-Bericht.
Hinweis: der Kompatibilitätsgrad Der Datenbank muss auf 90 oder höher für diese zu arbeiten korrekt. Sehen http://msdn.microsoft.com/en-gb/library/bb510680.aspx
InformationsquelleAutor der Antwort Kevin Brydon
sp_spaceused erhalten Sie Informationen über den verwendeten Speicherplatz für eine bestimmte Tabelle, eine indizierte Sicht oder die gesamte Datenbank.
Beispiel:
Diese Berichte die Speicherplatzauslastung Informationen für die ContactInfo Tabelle.
Dies für alle Tabellen auf einmal:
Können Sie auch Datenträger Verwendung innerhalb der rechten Maustaste auf Standard-Reports-Funktionen von SQL Server. Um zu diesem Bericht navigieren Sie aus dem server-Objekt im Objekt-Explorer, gehen Sie auf die Datenbanken-Objekt, und klicken Sie dann mit der rechten Maustaste eine beliebige Datenbank. Aus dem Menü, das erscheint, wählen Sie "Berichte", dann Standard-Reports " und dann "Disk Verwendung von Partition: [Datenbankname]".
InformationsquelleAutor der Antwort Axle
Für alle Tabellen,..(das hinzufügen von Kommentaren von Paul)
InformationsquelleAutor der Antwort Royi Namir
Nach einiger Suche konnte ich nicht finden eine einfache Möglichkeit, um Informationen über alle Tabellen. Es ist ein handliches gespeicherte Prozedur mit dem Namen sp_spaceused, die zurückkehren wird der gesamte Speicherplatz von der Datenbank verwendet werden. Wenn ein Tabellenname, es gibt den Platz, der von diesem Tisch. Allerdings werden die Ergebnisse von der gespeicherten Prozedur zurückgegeben sind nicht sortierbar, da die Spalten stehen die Charakter-Werte.
Folgende Skript generiert die Informationen, die ich Suche.
InformationsquelleAutor der Antwort Eric
Hier ist eine andere Methode: mit SQL Server Management Studioin Objekt-Explorergehen Sie in Ihre Datenbank, und wählen Sie Tabellen
Öffnen Sie dann die Details zum Objekt-Explorer (entweder durch drücken F7 oder gehen zu Ansicht->Details zum Objekt-Explorer). In die Seite details zum Objekt-explorer mit der rechten Maustaste auf den Spaltenkopf und aktivieren Sie die Spalten, die Sie möchten, um zu sehen, in die Seite. Sie können die Daten Sortieren, indem eine Spalte zu.
InformationsquelleAutor der Antwort Sparrow
Oben genannten Fragen sind gut für die Suche nach der Menge des Speicherplatzes, der durch die Tabelle (Indizes enthalten), aber wenn Sie vergleichen möchten, wie viel Speicherplatz verwendet wird, durch die Indizes auf der Tabelle diese Abfrage verwenden:
InformationsquelleAutor der Antwort Jens Frandsen
Wenn Sie benötigen, berechnen Sie genau die gleichen zahlen, die auf "Tabellen-Eigenschaften - Speicher" - Seite in SSMS, die Sie benötigen zu zählen, mit der gleichen Methode wie in SSMS (Werke für sql server 2005 und höher ... und auch richtig funktioniert für Tabellen mit LOB-Felder - weil nur das zählen "used_pages" ist nicht genug, um genaue index-Größe):
InformationsquelleAutor der Antwort sqladmin
InformationsquelleAutor der Antwort Mark
Eine kleine änderung auf Mar_c Antwort, da habe ich schon wieder zu dieser Seite so oft, bestellt von den meisten Zeilen die erste:
InformationsquelleAutor der Antwort Joel Harkes
Dadurch erhalten Sie die Größen, und die datensatzanzahl für jeden Tisch.
InformationsquelleAutor der Antwort William Walseth
Verwenden wir die Tabellenpartitionierung und hatten einige Probleme mit den Abfragen, die oben bereitgestellt durch die doppelte Datensätze.
Für diejenigen, die dies benötigen, finden Sie unten die query ausführen von SQL Server 2014, wenn die Generierung der "Disk-Auslastung durch die Tabelle" Bericht. Ich nehme an, es funktioniert auch mit früheren Versionen von SQL Server.
Es funktioniert wie ein Charme.
InformationsquelleAutor der Antwort xav
Get all table Größe in einer Datenbank können Sie diese Abfrage verwenden :
Und Sie können es ändern, einfügen, alle Ergebnis in temp-Tabelle und danach wählen Sie aus der temp-Tabelle.
InformationsquelleAutor der Antwort Ardalan Shahgholi
Habe ich ein paar mehr Spalten auf der Oberseite von marc_s Antwort:
InformationsquelleAutor der Antwort Alan Cardoso
Erweiterung zu @xav Antwort , bearbeitet von Tabellen-Partitionen zu bekommen, Größe in MB und GB.
Getestet auf SQL-Server 2008/2012 (Kommentiert eine Zeile, wo
is_memory_optimized = 1
)InformationsquelleAutor der Antwort Santhoshkumar KB
Mein post ist nur relevant für SQL Server 2000 und wurde getestet in meiner Umgebung.
Dieser code greift auf Alle möglichen Datenbanken von einer einzigen Instanznicht nur eine einzelne Datenbank.
Ich zwei temp-Tabellen zu helfen, sammeln die entsprechenden Daten ein und sichern Sie die Ergebnisse in einer "Live" - Tabelle.
Zurückgegebenen Daten: Datenbankname, DatabaseTableName, Zeilen (in der Tabelle), data (Größe der Tabelle im KB es scheint), Eintrag der Daten (ich finde diese nützlich zu wissen, Wann ich das Letzte mal das Skript).
Untergang dieser code ist die 'data' - Feld wird nicht gespeichert als int - (Die chars 'KB' gehalten werden, die in diesem Feld), und das wäre nützlich (aber nicht absolut notwendig) für die Sortierung.
Hoffentlich wird dieser code hilft jemand da draußen und spart Ihnen einige Zeit!
Den Fall, Sie müssen wissen, die rsp_DatabaseTableSizes Tabelle wurde erstellt durch:
InformationsquelleAutor der Antwort Andrew
Einer Eingabeaufforderung mit OSQL:
InformationsquelleAutor der Antwort user4658783
Als eine einfache Erweiterung von marc_s Antwort (die eine, die angenommen wurde), das angepasst ist, um return Anzahl der Spalten und ermöglichen Filterung:
InformationsquelleAutor der Antwort Zach Smith
Hier ist ein Weg, um alle Tabellen' Größen schnell mit den folgenden Schritten:
Schreiben gegeben T-SQL-Befehleum eine Liste aller Datenbank-Tabellen:
Kopieren Sie nun die Liste der Datenbank-Tabellen, und kopieren Sie Sie in eine neue query analyzer-Fenster
In SQL query analyzerwählen Sie aus der oberen Symbolleiste die option Ergebnisse in Datei (Strg + Shift + F).
Nun endlich in den Ausführen - Knopf rot markiert, die aus den oben genannten tool bar.
Die Datenbank Größe aller Tabellen ist jetzt gespeichert in einer Datei auf Ihrem computer.
InformationsquelleAutor der Antwort Anjan Kant
Riffs auf @Mark Antwort oben Hinzugefügt, den @updateusage='true' zu zwingen, die neueste Größe stats (https://msdn.microsoft.com/en-us/library/ms188776.aspx):
InformationsquelleAutor der Antwort Chris Smith