Kako spremljati SQL Server Rast baze podatkov z uporabo TSQL in Excela

Skupna raba zdaj:

Spremljanje rasti baze podatkov je ključni dejavnik pri načrtovanju virov strežnika. Uporabite ta skript in ustvarite lahko razumljivo poročilo o rasti baze podatkov

Zakaj morate spremljati rast baze podatkov

Če ste skrbnik baze podatkov SQL in če nimate »SQL Server načrtovanje zmogljivosti baze podatkov« na vašem seznamu ključnih opravil, potem ste lahko prepričani, da bodo baze podatkov na vašem strežniku kmalu zapolnile vaš prostor na disku. Sledenje velikosti in rasti baz podatkov SQL je ena od primarnih nalog načrtovanja zmogljivosti. To tudi zagotavlja, da je na disku dovolj prostora za rast vaših baz podatkov.

Naredi sam prek skripta SQL in Excela

V tem članku bomo uporabili SQL in Excel za zajemanje velikosti baz podatkov SQL skupaj z vzorcem. To nam bo omogočilo načrtovanje neposrednih prostorskih potreb in nam tudi pomagalo razumeti časovnico, v kateri je velik obseg.

Ta postopek je razdeljen na štiri različne korake, tako da mu lahko sledite brez težav.

1. korak: Izvedite ta skript v novem oknu poizvedbe.

Izhod bo imel imena baze podatkov kot glave vrstic in mesec kot glave stolpcev. Vrednosti, prikazane v izhodu, so velikost baze podatkov v 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

Izhod:Velikost izhodne baze podatkov

2. korak: Ustvarite nov primerek Excela in kopirajte izhod iz prejšnjega koraka v svoj novi Excelov list.

Kopirajte izhod v Excelov list

3. korak: Zdaj izberite prvi dve vrstici na listu in vstavite 2D črtni grafikon.

To bo ustvarilo grafikon trendov za izbrano bazo podatkov. V grafikonu bo os X označevala mesece, os Y pa velikost baze podatkov v GB.Izberite prvi dve vrstici na listu in vstavite 2D črtni grafikon

4. korak: Izberite celotne podatke tako, da povlečete simbol 'plus', da jih obdate.

To bo pokazalo trend vseh baz podatkov na grafikonu.Izberite Celotni podatki

Prikažite trend vseh baz podatkov na grafikonu

Če preskočite 3. korak in vstavite 2D črtni grafikon tako, da izberete celotno tabelo, boste še vedno dobili grafikon, vendar bo os X označevala imena baz podatkov namesto meseca. To ni zahtevan rezultat.Preskočite korak 3 in vstavite 2D črtni grafikon tako, da izberete celotno tabelo

Izhodna tabela ima lahko nekaj vrednosti NULL. To se zgodi, ker zgodovina varnostnih kopij baze podatkov morda nima nobenega zapisa za bazo podatkov za ta določen mesec. Pomeni tudi, da se skript sklicuje na velikost varnostne kopije v tabeli zgodovine varnostnega kopiranja za sledenje trendu rasti. Če katera od vaših baz podatkov ni vključena v rezervni načrt, bo izhodna tabela še vedno vsebovala ime baze podatkov, vendar bodo vrednosti za vse mesece NULL.

Popravi preveliko bazo podatkov

Če v preteklosti niste sledili zgornji strategiji in je vaša zbirka podatkov prevelika, lahko povzroči različne težave. V takem primeru je bolje, da poiščete SQL Server orodje za obnovitev datotek učinkovito in učinkovito rešiti problem.

Uvod avtorja:

Neil Varley je strokovnjak za obnovitev podatkov v DataNumen, Inc., ki je vodilna na svetu na področju tehnologij za obnovitev podatkov, vključno z odpravite težavo z Outlookom in excel programske izdelke za obnovitev. Za več informacij obiščite www.datanumen.com

Skupna raba zdaj:

Komentarji so zaprti.