Overvåking av databasevekst er en nøkkelfaktor i planleggingen av en servers ressurs. Bruk dette skriptet og lag en lettfattelig databasevekstrapport
Hvorfor du trenger å overvåke databasevekst
Hvis du er en SQL-databaseadministrator og hvis du ikke har "SQL Server databasekapasitetsplanlegging" i nøkkeloppgavelisten din, så kan du være sikker på at databasene på serveren din vil fylle opp diskplassen din ganske snart. Å spore størrelsen og veksten til SQL-databaser er en av hovedoppgavene for kapasitetsplanlegging. Dette sikrer også at det er nok plass på disken til at databasene dine kan vokse.
DIY via SQL Script og Excel
I denne artikkelen vil vi bruke SQL og Excel til å fange opp størrelsen på SQL-databaser sammen med mønsteret. Dette vil gjøre oss i stand til å planlegge for overhengende plassbehov og også hjelpe oss å forstå tidslinjen der det er et tungt volum.
Denne prosessen er delt inn i fire forskjellige trinn, slik at du kan følge med uten problemer.
Trinn 1: Kjør dette skriptet i et nytt spørringsvindu.
Utdataene vil ha databasenavn som radoverskrifter og måned som kolonneoverskrifter. Verdiene vist i utdataene er databasestørrelsen 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
Utgang:
Trinn 2: Opprett en ny forekomst av Excel, og kopier utdataene fra forrige trinn inn i det nye Excel-arket ditt.
Trinn 3: Velg nå de to første radene på arket og sett inn et 2D-linjediagram.
Dette vil lage trenddiagrammet for den valgte databasen. I diagrammet vil X-aksen angi måneder og Y-aksen vil angi databasestørrelsen i GB.
Trinn 4: Velg hele dataen ved å dra 'pluss'-symbolet for å omslutte det.
Dette vil vise trenden til alle databaser på diagrammet.
Hvis du hopper over trinn 3 og setter inn et 2D-linjediagram ved å velge hele tabellen, vil du fortsatt få et diagram, men X-aksen vil angi databasenavn i stedet for måned. Dette er ikke den nødvendige utgangen.
Utdatatabellen kan ha noen NULL-verdier. Dette skjer fordi databasens sikkerhetskopihistorikk kanskje ikke har noen post for databasen for den aktuelle måneden. Det innebærer også at skriptet refererer til sikkerhetskopistørrelsen i backuphistorikktabellen for å spore veksttrenden. Hvis noen av databasene dine ikke er inkludert i sikkerhetskopiplanen, vil utdatatabellen fortsatt inneholde databasenavnet, men verdiene for alle månedene vil være NULL
Fiks overdimensjonert database
Hvis du ikke følger strategien ovenfor tidligere, og databasen din er overdimensjonert, kan det forårsake ulike problemer. I et slikt tilfelle er det bedre å finne en SQL Server filgjenopprettingsverktøy å løse problemet effektivt og effektivt.
Forfatterintroduksjon:
Neil Varley er en datagjenopprettingsekspert innen DataNumen, Inc., som er verdensledende innen datagjenopprettingsteknologier, inkludert reparere Outlook-problem og excel-programvareprodukter for gjenoppretting. For mer informasjon besøk www.datanumen. Med





