Il monitoraggio della crescita del database è un fattore chiave nella pianificazione delle risorse di un server. Usa questo script e crea un report sulla crescita del database di facile comprensione
Perché è necessario monitorare la crescita del database
Se sei un amministratore del database SQL e se non hai "SQL Server pianificazione della capacità del database” nell'elenco delle attività chiave, allora puoi essere certo che i database sul tuo server riempiranno il tuo spazio su disco molto presto. Il monitoraggio delle dimensioni e della crescita dei database SQL è una delle attività principali della pianificazione della capacità. Ciò garantisce anche che vi sia spazio sufficiente su disco per la crescita dei database.
Fai da te tramite SQL Script ed Excel
In questo articolo utilizzeremo SQL ed Excel per acquisire la dimensione dei database SQL insieme al modello. Questo ci consentirà di pianificare i requisiti di spazio imminenti e ci aiuterà anche a capire la sequenza temporale durante la quale si verifica un volume elevato.
Questo processo è suddiviso in quattro diversi passaggi in modo che tu possa seguirlo senza problemi.
Passaggio 1: eseguire questo script in una nuova finestra di query.
L'output avrà nomi di database come intestazioni di riga e Mese come intestazioni di colonna. I valori mostrati nell'output sono le dimensioni del database 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
Uscita:
Passaggio 2: creare una nuova istanza di Excel e copiare l'output del passaggio precedente nel nuovo foglio Excel.
Passaggio 3: ora seleziona le prime due righe sul foglio e inserisci un grafico a linee 2D.
Questo creerà il grafico di tendenza per il database selezionato. Nel grafico, l'asse X indicherà i mesi e l'asse Y indicherà la dimensione del database in GB.
Passaggio 4: selezionare tutti i dati trascinando il simbolo "più" per avvolgerli.
Questo mostrerà l'andamento di tutti i database sul grafico.
Se salti il passaggio 3 e inserisci un grafico a linee 2D selezionando l'intera tabella, otterrai comunque un grafico ma l'asse X indicherà i nomi dei database anziché il mese, questo non è l'output richiesto.
La tabella Output potrebbe avere alcuni valori NULL. Ciò accade perché la cronologia di backup del database potrebbe non avere alcun record per il database per quel particolare mese. Implica inoltre che lo script faccia riferimento alla dimensione del backup nella tabella della cronologia del backup per tenere traccia del trend di crescita. Se uno dei tuoi database non è incluso nel piano di backup, la tabella di output conterrà comunque il nome del database ma i valori per tutti i mesi saranno NULL
Risolto il problema con il database sovradimensionato
Se in passato non segui la strategia di cui sopra e il tuo database è sovradimensionato, potrebbe causare vari problemi. In tal caso, faresti meglio a trovare a SQL Server strumento di recupero file per risolvere il problema in modo efficace ed efficiente.
Introduzione dell'autore:
Neil Varley è un esperto di recupero dati in DataNumen, Inc., che è il leader mondiale nelle tecnologie di recupero dati, tra cui riparare il problema di Outlook ed eccellere prodotti software di recupero. Per maggiori informazioni visita www.datanumen.com





