So überwachen Sie SQL Server Datenbankwachstum mit TSQL und Excel

Jetzt teilen:

Die Überwachung des Datenbankwachstums ist ein Schlüsselfaktor bei der Planung der Ressourcen eines Servers. Verwenden Sie dieses Skript und erstellen Sie einen leicht verständlichen Datenbankwachstumsbericht

Warum Sie das Datenbankwachstum überwachen müssen

Wenn Sie ein SQL-Datenbankadministrator sind und keine haben “SQL Server Datenbankkapazitätsplanung “in Ihrer Liste der wichtigsten Aufgaben. Dann können Sie sicher sein, dass die Datenbanken auf Ihrem Server Ihren Speicherplatz bald füllen werden. Die Verfolgung der Größe und des Wachstums von SQL-Datenbanken ist eine der Hauptaufgaben der Kapazitätsplanung. Dadurch wird auch sichergestellt, dass auf der Festplatte genügend Speicherplatz vorhanden ist, damit Ihre Datenbanken wachsen können.

DIY über SQL Script und Excel

In diesem Artikel verwenden wir SQL und Excel, um die Größe von SQL-Datenbanken zusammen mit dem Muster zu erfassen. Auf diese Weise können wir den bevorstehenden Platzbedarf planen und die Zeitachse verstehen, in der ein hohes Volumen vorhanden ist.

Dieser Vorgang ist in vier verschiedene Schritte unterteilt, sodass Sie problemlos folgen können.

Schritt 1: Führen Sie dieses Skript in einem neuen Abfragefenster aus.

Die Ausgabe enthält Datenbanknamen als Zeilenüberschriften und Month als Spaltenüberschriften. Die in der Ausgabe angezeigten Werte sind die Datenbankgröße in GB.

declare @v_count as integer, @do_count as integer, @v_month as varchar(20),@sql as varchar(5000)

create table [t_databases]
(
Database_Name varchar(200),
January       float(3),
February      float(3),
March  float(3),
April  float(3),
May    float(3),
June   float(3),
July   float(3),
August float(3),
September     float(3),
October       float(3),
November      float(3),
December      float(3),
)
create table t_databases_gateway
(
Database_Name varchar(200),
Database_Size float(3)
)
set @v_count = (select COUNT(*) from t_databases ) 
if @v_count = 0 
begin
insert into t_databases(Database_Name)
select name from sysdatabases 
 end
if @v_count <> 0 
 begin 
--this script captures the size of all databases. You can add a where clause to capture the size of specific database name 
 INSERT t_databases (Database_Name) 
 SELECT DISTINCT Name FROM sysdatabases cr LEFT JOIN t_databases c ON cr.Name = c.Database_Name WHERE c.Database_Name IS NULL 
 end 
 --select * from master.dbo.t_databases 
 --drop table t_databases 
 set @do_count = 1 
 while (@do_count <=12) 
 begin 
 set @v_month = DATENAME(m, str(@do_count) + '/1/2016') –change the year to 2017 or other year as per your requirement 
 truncate table master.dbo.t_databases_gateway 
 insert into master.dbo.t_databases_gateway select distinct
(msdb.dbo.backupset.[database_name]),max(msdb.dbo.backupset.[Backup_Size]/1073741824)
from msdb.dbo.backupset inner join master.dbo.t_databases on msdb.dbo.backupset.[database_name] = master.dbo.t_databases.[Database_Name] where
datepart(m,msdb.dbo.backupset.[backup_finish_date]) =  @do_count and datepart(yyyy,msdb.dbo.backupset.[backup_finish_date] ) = 2015 group by msdb.dbo.backupset.[database_name]
set @sql = 'update master.dbo.t_databases set ' + @v_month + ' = (select Database_Size from master.dbo.t_databases_gateway where master.dbo.t_databases.Database_Name = master.dbo.t_databases_gateway.Database_Name)'
exec (@sql)
set @do_count = @do_count + 1
end
select * from t_databases
drop table t_databases_gateway
drop table t_databases

Ausgang:Größe der Ausgabedatenbank

Schritt 2: Erstellen Sie eine neue Excel-Instanz und kopieren Sie die Ausgabe aus dem vorherigen Schritt in Ihre neue Excel-Tabelle.

Kopieren Sie die Ausgabe in eine Excel-Tabelle

Schritt 3: Wählen Sie nun die ersten beiden Zeilen auf dem Blatt aus und fügen Sie ein 2D-Liniendiagramm ein.

Dadurch wird das Trenddiagramm für die ausgewählte Datenbank erstellt. In der Tabelle gibt die X-Achse Monate und die Y-Achse die Datenbankgröße in GB an.Wählen Sie die ersten beiden Zeilen auf dem Blatt aus und fügen Sie ein 2D-Liniendiagramm ein

Schritt 4: Wählen Sie die gesamten Daten aus, indem Sie das Pluszeichen ziehen, um sie einzuhüllen.

Dies zeigt den Trend aller Datenbanken im Diagramm.Wählen Sie die gesamten Daten aus

Zeigen Sie den Trend aller Datenbanken im Diagramm an

Wenn Sie Schritt 3 überspringen und ein 2D-Liniendiagramm einfügen, indem Sie die gesamte Tabelle auswählen, erhalten Sie weiterhin ein Diagramm, aber die X-Achse kennzeichnet Datenbanknamen anstelle von Monat. Dies ist nicht die erforderliche Ausgabe.Überspringen Sie Schritt 3 und fügen Sie ein 2D-Liniendiagramm ein, indem Sie die gesamte Tabelle auswählen

Die Ausgabetabelle enthält möglicherweise einige NULL-Werte. Dies liegt daran, dass der Datenbanksicherungsverlauf für diesen bestimmten Monat möglicherweise keinen Datensatz für die Datenbank enthält. Dies bedeutet auch, dass sich das Skript auf die Sicherungsgröße in der Sicherungsverlaufstabelle bezieht, um den Wachstumstrend zu verfolgen. Wenn eine Ihrer Datenbanken nicht im Sicherungsplan enthalten ist, enthält die Ausgabetabelle weiterhin den Datenbanknamen, die Werte für alle Monate sind jedoch NULL

Übergroße Datenbank reparieren

Wenn Sie in der Vergangenheit die oben genannte Strategie nicht befolgen und Ihre Datenbank übergroß ist, kann dies verschiedene Probleme verursachen. In einem solchen Fall ist es besser, eine zu finden SQL Server Tool zur Wiederherstellung von Dateien das Problem effektiv und effizient zu lösen.

Einführung des Autors:

Neil Varley ist ein Experte für Datenwiederherstellung in DataNumen, Inc., das weltweit führend bei Datenwiederherstellungstechnologien ist, einschließlich Outlook-Problem beheben und Excel-Wiederherstellungssoftwareprodukte. Für weitere Informationen besuchen Sie www.datanumen.com €XNUMX

Jetzt teilen:

Kommentare sind geschlossen.