Sådan overvåges SQL Server Databasevækst ved hjælp af TSQL og Excel

Overvågning af databasevækst er en nøglefaktor i planlægningen af ​​en servers ressource. Brug dette script, og opret letforståelig database vækst rapport

Hvorfor skal du overvåge databasevækst

Hvis du er SQL Database-administrator, og hvis du ikke har “SQL Server databasekapacitetsplanlægning ”i din nøgleopgaveliste, så kan du være sikker på, at databaser på din server fylder din diskplads temmelig snart. Sporing af størrelse og vækst i SQL-databaser er en af ​​de primære opgaver ved kapacitetsplanlægning. Dette sikrer også, at der er nok plads på disken til, at dine databaser kan vokse.

Gør det selv via SQL Script og Excel

I denne artikel bruger vi SQL og Excel til at registrere størrelsen på SQL-databaser sammen med mønsteret. Dette gør det muligt for os at planlægge overhængende pladsbehov og også hjælpe os med at forstå tidslinjen, hvor der er et stort volumen.

Denne proces er opdelt i fire forskellige trin, så du kan følge uden problemer.

Trin 1: Udfør dette script i et nyt forespørgselsvindue.

Outputtet har databasenavne som rækkeoverskrifter og måned som kolonneoverskrifter. Værdier vist i output er databasestørrelse i 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

Output:Output Database Størrelse

Trin 2: Opret en ny forekomst af Excel, og kopier output fra forrige trin til dit nye Excel-ark.

Kopier output til Excel-ark

Trin 3: Vælg nu de første to rækker på arket, og indsæt et 2D-linjediagram.

Dette opretter trenddiagrammet for den valgte database. I diagrammet angiver X Axis måneder, og Y Axis angiver databasestørrelsen i GB.Vælg de første to rækker på arket, og indsæt et 2D-linjediagram

Trin 4: Vælg hele data ved at trække 'plus'-symbolet for at omslutte det.

Dette viser tendensen for alle databaser på diagrammet.Vælg hele data

Vis trenden med alle databaser på diagrammet

Hvis du springer trin 3 over og indsætter et 2D-linjediagram ved at vælge hele tabellen, får du stadig et diagram, men X-aksen angiver databasenavne i stedet for måned. Dette er ikke det krævede output.Spring trin 3 over, og indsæt et 2D-linjediagram ved at vælge hele tabellen

Output-tabellen kan have nogle NULL-værdier. Dette sker, fordi sikkerhedskopieringshistorikken til databasen muligvis ikke har nogen registrering for databasen for den pågældende måned. Det indebærer også, at scriptet henviser til backupstørrelsen i backuphistoriktabellen for at spore væksttrenden. Hvis nogen af ​​dine databaser ikke er inkluderet i backupplanen, vil Output-tabellen stadig indeholde databasens navn, men værdierne i alle måneder er NULL

Fix overdimensioneret database

Hvis du ikke følger ovenstående strategi tidligere, og din database er for stor, kan det medføre forskellige problemer. I et sådant tilfælde er det bedre at finde en SQL Server filgendannelsesværktøj for at løse problemet effektivt og effektivt.

Forfatter Introduktion:

Neil Varley er en datagendannelsesekspert i DataNumen, Inc., som er verdens førende inden for datagendannelsesteknologier, herunder reparere Outlook-problem og excel-genopretningssoftwareprodukter. For mere information besøg www.datanumen.com

Kommentarer er lukket.