Ako monitorovať SQL Server Rast databázy pomocou TSQL a Excel

Zdieľať teraz:

Monitorovanie rastu databázy je kľúčovým faktorom pri plánovaní zdrojov servera. Použite tento skript a vytvorte ľahko pochopiteľnú správu o raste databázy

Prečo musíte sledovať rast databázy

Ak ste správcom databázy SQL a ak nemáte „SQL Server plánovanie kapacity databázy “vo svojom zozname kľúčových úloh, môžete si byť istí, že databázy na vašom serveri čoskoro vyplnia miesto na vašom disku. Sledovanie veľkosti a rastu databáz SQL je jednou z hlavných úloh plánovania kapacity. To tiež zaisťuje, že na disku je dostatok miesta na to, aby mohli rásť vaše databázy.

DIY pomocou SQL Script a Excel

V tomto článku použijeme na zachytenie veľkosti databáz SQL spolu so vzorom SQL a Excel. To nám umožní naplánovať bezprostredné vesmírne požiadavky a tiež nám pomôže pochopiť časovú os, počas ktorej je veľký objem.

Tento proces je rozdelený do štyroch rôznych krokov, aby ste ho mohli bez problémov nasledovať.

Krok 1: Spustite tento skript v novom okne dotazu.

Výstup bude mať názvy databáz ako hlavičky riadkov a mesiac ako hlavičky stĺpcov. Hodnoty zobrazené na výstupe sú veľkosť databázy 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

Výkon :Veľkosť výstupnej databázy

Krok 2: Vytvorte novú inštanciu programu Excel a skopírujte výstup z predchádzajúceho kroku do nového hárka programu Excel.

Skopírujte výstup do hárka programu Excel

Krok 3: Teraz vyberte prvé dva riadky na hárku a vložte 2D čiarový graf.

Týmto sa vytvorí trendový graf pre vybranú databázu. V grafe bude os X označovať mesiace a os Y veľkosť databázy v GB.Vyberte prvé dva riadky na hárku a vložte 2D spojnicový graf

Krok 4: Vyberte všetky údaje tak, že ich obalíte presunutím symbolu „plus“.

Zobrazí sa trend všetkých databáz v grafe.Vyberte Celé údaje

Ukážte trend všetkých databáz v grafe

Ak preskočíte krok 3 a vložíte čiarový graf 2D výberom celej tabuľky, stále sa vám zobrazí graf, ale os X bude namiesto mesiaca označovať názvy databáz. Toto nie je požadovaný výstup.Krok 3 preskočte a vložte 2D čiarový graf výberom celej tabuľky

Výstupná tabuľka môže mať niektoré hodnoty NULL. Stáva sa to preto, že história zálohovania databázy nemusí mať pre daný mesiac žiadny záznam pre databázu. To tiež znamená, že skript odkazuje na veľkosť zálohy v tabuľke histórie zálohovania, aby mohol sledovať rastový trend. Ak niektorá z vašich databáz nie je zahrnutá v pláne zálohovania, výstupná tabuľka bude stále obsahovať názov databázy, ale hodnoty pre všetky mesiace budú NULL

Opravte nadrozmernú databázu

Ak v minulosti nebudete postupovať podľa vyššie uvedenej stratégie a vaša databáza je predimenzovaná, môže to spôsobiť rôzne problémy. V takom prípade radšej vyhľadajte a SQL Server nástroj na obnovu súborov efektívne a efektívne vyriešiť problém.

Úvod autora:

Neil Varley je odborníkom na obnovu dát v odbore DataNumen, Inc., ktorá je svetovým lídrom v oblasti technológií obnovy dát, vrátane opraviť problém s programom Outlook a vynikajúce softvérové ​​produkty na obnovenie. Pre viac informácií navštívte www.datanumen. S

Zdieľať teraz:

Komentáre sú uzavreté.