Kuidas jälgida SQL Server Andmebaasi kasv TSQL-i ja Exceli abil

Andmebaasi kasvu jälgimine on serveri ressursi planeerimisel võtmetegur. Kasutage seda skripti ja looge hõlpsasti mõistetav andmebaasi kasvuaruanne

Miks peate jälgima andmebaasi kasvu?

Kui olete SQL-i andmebaasi administraator ja kui teil pole "SQL Server andmebaasi mahu planeerimine” oma põhiülesannete loendis, siis võite olla kindel, et teie serveri andmebaasid täidavad teie kettaruumi üsna pea. SQL-andmebaaside suuruse ja kasvu jälgimine on suutlikkuse planeerimise üks peamisi ülesandeid. See tagab ka selle, et kettal on piisavalt ruumi andmebaaside kasvamiseks.

DIY SQL Scripti ja Exceli kaudu

Selles artiklis kasutame SQL-i ja Exceli SQL-andmebaaside suuruse ja mustriga jäädvustamiseks. See võimaldab meil planeerida peatseid ruumivajadusi ja mõista ka ajaskaala, mille jooksul on suur maht.

See protsess on jagatud neljaks erinevaks etapiks, et saaksite seda probleemideta jälgida.

1. samm: käivitage see skript uues päringuaknas.

Väljundil on andmebaasi nimed reapäistena ja kuu veeru päistena. Väljundis näidatud väärtused on andmebaasi suurus GB-des.

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äljund:Väljundandmebaasi suurus

2. samm: looge uus Exceli eksemplar ja kopeerige eelmise etapi väljund oma uuele Exceli lehele.

Kopeerige väljund Exceli lehele

3. samm: valige nüüd lehel kaks esimest rida ja sisestage 2D joondiagramm.

See loob valitud andmebaasi trendi diagrammi. Diagrammil tähistab X-telg kuid ja Y-telg andmebaasi suurust GB-des.Valige lehe kaks esimest rida ja sisestage 2D joondiagramm

4. samm: valige kogu andmed, lohistades nende ümbritsemiseks plussmärgi.

See näitab kõigi diagrammil olevate andmebaaside trendi.Valige Kogu Andmed

Näidake diagrammil kõigi andmebaaside suundumusi

Kui jätate 3. sammu vahele ja sisestate 2D joondiagrammi, valides kogu tabeli, saate ikkagi diagrammi, kuid X-teljel tähistatakse kuu asemel andmebaasi nimesid. See ei ole nõutav väljund.Jätke 3. samm vahele ja sisestage 2D joondiagramm, valides kogu tabeli

Väljundtabelis võivad olla mõned NULL väärtused. See juhtub seetõttu, et andmebaasi varukoopiate ajaloos ei pruugi selle konkreetse kuu kohta andmebaasi kirjeid olla. See tähendab ka, et skript viitab varukoopiate ajaloo tabelis olevale varukoopia suurusele, et jälgida kasvutrendi. Kui mõni teie andmebaasidest ei sisaldu varuplaanis, on väljundtabelis endiselt andmebaasi nimi, kuid kõigi kuude väärtused on NULL

Parandage liiga suur andmebaas

Kui te varem ülaltoodud strateegiat ei järgi ja teie andmebaas on liiga suur, võib see põhjustada mitmesuguseid probleeme. Sellisel juhul on parem leida a SQL Server failide taastamise tööriist probleemi tõhusaks ja tõhusaks lahendamiseks.

Autori sissejuhatus:

Neil Varley on andmete taastamise ekspert DataNumen, Inc., mis on maailmas juhtiv andmete taastamise tehnoloogiate, sealhulgas Outlooki probleemi parandamine ja Exceli taastamise tarkvaratooted. Lisateabe saamiseks külastage www.datanumenCom

Kommentaarid on suletud.