Monitorizarea creșterii bazei de date este un factor cheie în planificarea resurselor unui server. Utilizați acest script și creați un raport de creștere a bazei de date ușor de înțeles
De ce trebuie să monitorizați creșterea bazei de date
Dacă sunteți administrator de baze de date SQL și dacă nu aveți „SQL Server planificarea capacității bazei de date” în lista de sarcini cheie, atunci puteți fi sigur că bazele de date de pe serverul dvs. vă vor umple spațiul pe disc destul de curând. Urmărirea dimensiunii și creșterii bazelor de date SQL este una dintre sarcinile principale ale Planificării capacității. Acest lucru asigură, de asemenea, că există suficient spațiu pe disc pentru ca bazele de date să crească.
DIY prin SQL Script și Excel
În acest articol, vom folosi SQL și Excel pentru a captura dimensiunea bazelor de date SQL împreună cu modelul. Acest lucru ne va permite să planificăm cerințele de spațiu iminente și, de asemenea, ne va ajuta să înțelegem cronologia în care există un volum mare.
Acest proces este subdivizat în patru pași diferiți, astfel încât să puteți urma fără probleme.
Pasul 1: Executați acest script într-o nouă fereastră de interogare.
Ieșirea va avea nume de baze de date ca antete de rând și Lună ca antete de coloană. Valorile afișate în rezultat sunt dimensiunea bazei de date în 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
ieşire:
Pasul 2: Creați o nouă instanță de Excel și copiați rezultatul de la pasul anterior în noua foaie Excel.
Pasul 3: Acum selectați primele două rânduri de pe foaie și introduceți o diagramă cu linii 2D.
Aceasta va crea diagrama de tendințe pentru baza de date selectată. În grafic, axa X va indica luni, iar axa Y va indica dimensiunea bazei de date în GB.
Pasul 4: Selectați toate datele trăgând simbolul „plus” pentru a le învălui.
Aceasta va arăta tendința tuturor bazelor de date de pe diagramă.
Dacă omiteți Pasul 3 și introduceți o diagramă cu linii 2D selectând întregul tabel, veți primi în continuare o diagramă, dar axa X va denota numele bazei de date în loc de Lună, aceasta nu este rezultatul necesar.
Tabelul de ieșire poate avea niște valori NULL. Acest lucru se întâmplă deoarece istoricul de backup al bazei de date ar putea să nu aibă nicio înregistrare pentru baza de date pentru luna respectivă. De asemenea, implică faptul că scriptul se referă la dimensiunea copiei de rezervă din tabelul cu istoricul de rezervă pentru a urmări tendința de creștere. Dacă oricare dintre bazele dvs. de date nu este inclusă în planul de rezervă, tabelul de ieșire va păstra în continuare numele bazei de date, dar valorile pentru toate lunile vor fi NULL
Remediați baza de date supradimensionată
Dacă nu urmați strategia de mai sus în trecut, iar baza de date este supradimensionată, atunci aceasta poate cauza diverse probleme. Într-un astfel de caz, ar fi mai bine să găsești un SQL Server instrument de recuperare a fișierelor pentru a rezolva problema eficient și eficient.
Introducerea autorului:
Neil Varley este un expert în recuperarea datelor DataNumen, Inc., care este lider mondial în tehnologiile de recuperare a datelor, inclusiv reparați problema Outlook și produse software de recuperare Excel. Pentru mai multe informații vizitați www.datanumen.com





