Övervakning av databastillväxt är en nyckelfaktor för planering av en serverresurs. Använd det här skriptet och skapa en lättförståelig tillväxtrapport för databaser
Varför du behöver övervaka databasens tillväxt
Om du är SQL-databasadministratör och om du inte har “SQL Server databaskapacitetsplanering ”i din nyckeluppgiftslista, då kan du vara säker på att databaser på din server kommer att fylla ditt hårddiskutrymme ganska snart. Att spåra storlek och tillväxt av SQL-databaser är en av de viktigaste uppgifterna för kapacitetsplanering. Detta säkerställer också att det finns tillräckligt med utrymme på disken för att dina databaser ska kunna växa.
Gör det själv via SQL Script och Excel
I den här artikeln kommer vi att använda SQL och Excel för att fånga storleken på SQL-databaser tillsammans med mönstret. Detta gör det möjligt för oss att planera för överhängande utrymmeskrav och också hjälpa oss att förstå tidslinjen under vilken det finns en stor volym.
Denna process är indelad i fyra olika steg så att du skulle kunna följa utan problem.
Steg 1: Kör det här skriptet i ett nytt frågefönster.
Utdata kommer att ha databasnamn som radrubriker och månad som kolumnrubriker. Värden som visas i utdata är databasstorlek 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
Utgång:
Steg 2: Skapa en ny instans av Excel och kopiera utdata från föregående steg till ditt nya Excel-ark.
Steg 3: Välj nu de två första raderna på arket och sätt in ett 2D-linjediagram.
Detta skapar trenddiagrammet för den valda databasen. I diagrammet betecknar X Axis månader och Y Axis anger databasstorleken i GB.
Steg 4: Välj hela data genom att dra plussymbolen för att omsluta den.
Detta visar trenden för alla databaser i diagrammet.
Om du hoppar över steg 3 och infogar ett 2D-linjediagram genom att välja hela tabellen får du fortfarande ett diagram men X-axeln kommer att beteckna databasnamn istället för månad. Detta är inte den önskade utgången.
Output-tabellen kan ha vissa NULL-värden. Detta händer eftersom databasens säkerhetskopieringshistorik kanske inte har någon post för databasen för den aktuella månaden. Det innebär också att manuset hänvisar till säkerhetskopieringsstorleken i säkerhetskopieringshistoriktabellen för att spåra tillväxttrenden. Om någon av dina databaser inte ingår i säkerhetskopieringsplanen kommer utdata-tabellen fortfarande att innehålla databasnamnet men värdena för alla månader är NULL
Fix överdimensionerad databas
Om du inte följer ovanstående strategi tidigare och din databas är för stor kan det orsaka olika problem. I ett sådant fall är det bättre att du hittar en SQL Server filåterställningsverktyg för att lösa problemet effektivt och effektivt.
Författarintroduktion:
Neil Varley är en dataåterställningsexpert i DataNumen, Inc., som är världsledande inom teknik för återställning av data, inklusive reparera Outlook-problemet och Excel-programvara för återställningsprogramvara. För mer information besök www.datanumen.com





