Kako nadgledati SQL Server Rast baze podataka pomoću TSQL-a i Excel-a

Podijeli sada:

Praćenje rasta baze podataka je ključni faktor u planiranju resursa servera. Koristite ovu skriptu i kreirajte lako razumljiv izvještaj 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šoj listi ključnih zadataka, tada možete biti sigurni da će baze podataka na vašem serveru popuniti vaš prostor na disku prilično brzo. Praćenje veličine i rasta SQL baza podataka jedan je od primarnih zadataka planiranja kapaciteta. Ovo također osigurava da ima dovoljno prostora na disku za rast vaših baza podataka.

Uradi sam putem SQL Script-a i Excel-a

U ovom članku ćemo koristiti SQL i Excel za snimanje veličine SQL baza podataka zajedno sa uzorkom. Ovo će nam omogućiti da planiramo neposredne potrebe za prostorom i takođe nam pomoći da razumemo vremensku liniju tokom koje postoji veliki obim.

Ovaj proces je podijeljen u četiri različita koraka tako da možete slijediti bez ikakvih problema.

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

Izlaz će imati imena baze podataka kao zaglavlja reda i mjesec kao zaglavlja kolone. 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: Kreirajte novu instancu Excel-a i kopirajte izlaz iz prethodnog koraka u vaš novi Excel list.

Kopirajte izlaz u Excel list

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

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

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

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

Prikaži 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 os X će označavati imena baze podataka umjesto Mjeseca, Ovo nije potreban izlaz.Preskočite korak 3 i umetnite 2D linijski grafikon odabirom cijele tabele

Izlazna tablica može imati neke NULL vrijednosti. Ovo se događa zato što historija sigurnosne kopije baze podataka možda nema nikakav zapis za bazu podataka za taj određeni mjesec. Takođe implicira da se skripta odnosi na veličinu rezervne kopije u tabeli istorije rezervnih kopija kako bi se pratio trend rasta. Ako bilo koja od vaših baza podataka nije uključena u rezervni plan, izlazna tabela će i dalje sadržavati naziv baze podataka, ali vrijednosti za sve mjesece će biti NULL

Popravi preveliku bazu podataka

Ako u prošlosti ne slijedite gornju strategiju, a vaša baza podataka je prevelika, to može uzrokovati razne probleme. U takvom slučaju, bolje je pronaći a SQL Server alat za oporavak datoteka da efikasno i efikasno reši problem.

Uvod za autora:

Neil Varley je stručnjak za oporavak podataka 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.