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:
Korak 2: Stvorite novu instancu Excela i kopirajte izlaz iz prethodnog koraka u svoj novi 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.
Korak 4: Odaberite cijele podatke povlačenjem simbola 'plus' da biste ih omotali.
Ovo će pokazati 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.
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





