Kako pratiti SQL Server Rast baze podataka pomoću TSQL-a i Excela

Podijeli sada:

Praćenje rasta baze podataka ključni je faktor u planiranju resursa poslužitelja. Koristite ovu skriptu i stvorite lako razumljivo izvješće o rastu baze podataka

Zašto trebate pratiti rast baze podataka

Ako ste administrator SQL baze podataka i ako nemate "SQL Server planiranje kapaciteta baze podataka” na vašem popisu ključnih zadataka, tada možete biti sigurni da će baze podataka na vašem poslužitelju vrlo brzo popuniti vaš prostor na disku. Praćenje veličine i rasta SQL baza podataka jedan je od primarnih zadataka planiranja kapaciteta. Ovo također osigurava da na disku ima dovoljno prostora za rast vaših baza podataka.

Uradi sam putem SQL skripte i Excela

U ovom ćemo članku koristiti SQL i Excel za bilježenje veličine SQL baza podataka zajedno s uzorkom. To će nam omogućiti da isplaniramo neposredne potrebe za prostorom i također nam pomoći da razumijemo vremensku traku tijekom koje postoji veliki volumen.

Ovaj je postupak podijeljen u četiri različita koraka kako biste ga mogli pratiti bez ikakvih problema.

Korak 1: Izvršite ovu skriptu u novom prozoru upita.

Izlaz će imati nazive baze podataka kao zaglavlja redaka i Mjesec kao zaglavlja stupaca. Vrijednosti prikazane u izlazu su veličina baze podataka u 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

Izlaz:Veličina izlazne baze podataka

Korak 2: Stvorite novu instancu Excela i kopirajte izlaz iz prethodnog koraka u svoj novi Excel list.

Kopirajte izlaz u Excel list

Korak 3: Sada odaberite prva dva retka na listu i umetnite 2D linijski grafikon.

Ovo će stvoriti grafikon trenda za odabranu bazu podataka. Na grafikonu će os X označavati mjesece, a os Y veličinu baze podataka u GB.Odaberite prva dva retka na listu i umetnite 2D linijski grafikon

Korak 4: Odaberite cijele podatke povlačenjem simbola 'plus' da biste ih omotali.

Ovo će pokazati trend svih baza podataka na grafikonu.Odaberite Cijeli podaci

Prikažite trend svih baza podataka na grafikonu

Ako preskočite korak 3 i umetnete 2D linijski grafikon odabirom cijele tablice, i dalje ćete dobiti grafikon, ali će X os označavati nazive baze podataka umjesto mjeseca. Ovo nije potreban izlaz.Preskočite korak 3 i umetnite 2D linijski grafikon odabirom cijele tablice

Izlazna tablica može imati neke NULL vrijednosti. To se događa jer povijest sigurnosnog kopiranja baze podataka možda nema zapisa za bazu podataka za taj određeni mjesec. Također implicira da se skripta odnosi na veličinu sigurnosne kopije u tablici povijesti sigurnosne kopije kako bi pratila trend rasta. Ako bilo koja od vaših baza podataka nije uključena u rezervni plan, izlazna tablica i dalje će sadržavati naziv baze podataka, ali vrijednosti za sve mjesece bit će NULL

Popravite preveliku bazu podataka

Ako u prošlosti niste slijedili gornju strategiju, a vaša je baza podataka prevelika, to može uzrokovati razne probleme. U tom slučaju, bolje je pronaći SQL Server alat za oporavak datoteka učinkovito i učinkovito riješiti problem.

Uvod za autora:

Neil Varley je stručnjak za oporavak podataka u DataNumen, Inc., koji je svjetski lider u tehnologijama za oporavak podataka, uključujući popraviti Outlook problem i excel softverski proizvodi za oporavak. Za više informacija posjetite www.datanumen.com

Podijeli sada:

Komentari su zatvoreni.