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:
Trin 2: Opret en ny forekomst af Excel, og kopier output fra forrige trin til dit nye 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.
Trin 4: Vælg hele data ved at trække 'plus'-symbolet for at omslutte det.
Dette viser tendensen for 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.
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





