Können wir eine SQL-Abfrage haben, die im Grunde beim Anzeigen von Tabellen- und Indexgrößen in SQl Server hilft?
Wie verwaltet SQL Server die Speichernutzung für Tabellen / Indizes?
sql-server
Kamal Joshi
quelle
quelle
sp_helpdb
nützlich findenAntworten:
Der
exec sp_spaceused
Parameter without zeigt die Zusammenfassung für die gesamte Datenbank. Die foreachtable-Lösung generiert eine Ergebnismenge pro Tabelle - die SSMS möglicherweise nicht verarbeiten kann, wenn Sie zu viele Tabellen haben.Ich habe ein Skript erstellt , das die Tabelleninformationen über sammelt
sp_spaceused
und eine Zusammenfassung in einem einzelnen Datensatz nach Größe sortiert anzeigt.quelle
#
.sp_spaceused gibt Ihnen die Größe aller Indizes zusammen.
Wenn Sie die Größe jedes Index für eine Tabelle möchten, verwenden Sie eine dieser beiden Abfragen:
Die Ergebnisse sind normalerweise leicht unterschiedlich, liegen jedoch innerhalb von 1%.
quelle
Msg 102, Level 15, State 1, Line 5 - Incorrect syntax near '('.
mich an, aber ich kann keine Probleme mit der Syntax sehen. Irgendeine Idee?In SQL 2012 ist es sehr einfach geworden, diese Informationen auf Tabellenebene abzurufen:
SQL Management Studio -> Klicken Sie mit der rechten Maustaste auf Datenbank -> Berichte -> Standardberichte -> Datenträgerverwendung nach Tabelle!
Genießen
quelle
quelle
{ }
) in der Editor-Symbolleiste, um sie gut zu formatieren und in der Syntax hervorzuheben!quelle
Hier ist eine kompaktere Version der erfolgreichsten Antwort:
quelle
Es ist lange her seit der Erstellung für diesen Beitrag, aber ich wollte mein Skript teilen:
es funktioniert für:
quelle
Es gibt eine erweiterte gespeicherte Prozedur
sp_spaceused
, die diese Informationen herausgibt. Es ist ziemlich kompliziert, dies aus dem Datenwörterbuch heraus zu tun, aber dieser Link führt zu einem Skript, das dies tut. Diese Stackoverflow-Frage enthält einige Informationen zu den zugrunde liegenden Datenstrukturen, mit denen Sie Schätzungen der Tabellen- und Indexgrößen für die Kapazitätsplanung erstellen können.quelle
Diese Abfrage stammt aus zwei anderen Antworten:
Ruft die Größe aller Tabellen in der Datenbank ab
Wie finde ich die größten Objekte in einer SQL Server-Datenbank?
, aber ich habe dies verbessert, um universell zu sein. Es verwendet
sys.objects
Wörterbuch:quelle