Cum se monitorizează SQL Server Creșterea bazei de date folosind TSQL și Excel

Distribuie acum:

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:Dimensiunea bazei de date de ieșire

Pasul 2: Creați o nouă instanță de Excel și copiați rezultatul de la pasul anterior în noua foaie Excel.

Copiați rezultatul în foaia 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.Selectați primele două rânduri de pe foaie și inserați o diagramă cu linii 2D

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ă.Selectați Datele întregi

Afișați tendința tuturor bazelor de date 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.Omiteți pasul 3 și introduceți o diagramă cu linii 2D selectând întregul tabel

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

Distribuie acum:

Comentariile sunt închise.