Ich habe MS SQL 2008 R2, 500 Datenbanken. Was ist die effizienteste, einfachste und "modernste" Methode, um alle Datenbankgrößen abzufragen?
Die Ausgabe sollte Spalten haben:
- Name der Datenbank
- DataFilesSize
- LogFilesSize
sql
sql-server
tsql
sql-server-2008-r2
Alex Aza
quelle
quelle
Ich weiß nicht genau, was Sie unter Effizienz verstehen, aber das ist unkompliziert und funktioniert bei mir:
Mit Ergebnissen wie:
Hinweis: wurde von diesem Artikel inspiriert
quelle
Hier ist eine einfache, schnelle und zuverlässige Abfrage, die alle Datenbank- und Protokolldateinamen, -größen und auch Datenbankstatus (z. B. ONLINE) in einer schönen, leicht lesbaren Ausgabe angibt:
quelle
mit bestellter Gesamtdatenbankgröße Desc
quelle
Alle scheinen zu kompliziert! Oder fehlt mir etwas?
Sicherlich ist alles, was Sie brauchen, so etwas wie:
oder wenn Sie das Protokoll nicht möchten:
quelle
Weitere Informationen finden Sie oder laden Sie das Skript unter folgendem Link herunter: https://gallery.technet.microsoft.com/SIZE-OF-ALL-DATABASES-IN-0337f6d5#content
quelle
quelle
GROUP BY DB.name, DB.database_id ORDER BY DB.database_id
behält die Tabellenreihenfolge bei.Ich bin kürzlich auf diese Seite gestoßen und habe nach so etwas gesucht. Nur für den Fall, dass jemand darauf stößt und sich nur für die Hauptbenutzerdatenbanken interessiert, können Sie so etwas verwenden, das Master, msdb ... ausschließt.
quelle
quelle
Nicht um deine Antwort zu stehlen und sie für Punkte oder irgendetwas anzupassen, aber hier ist eine andere Faktorisierung:
quelle
Eine bessere und ganz einfachere
Sie erhalten die Größe der Datendatei (en) und der Protokolldatei (en) wie unten separat
quelle
Der folgende Code hat bei mir sehr gut funktioniert.
quelle
Vereinfachte und verbesserte Version:
quelle
Manchmal verhindern SECURITY- Probleme, dass alle Datenbankdaten abgefragt werden, und Sie müssen eine nach der anderen mit dem Datenbankpräfix abfragen. In diesen Fällen habe ich diese dynamische Abfrage erstellt
quelle