Hoe te controleren SQL Server Database-groei met behulp van TSQL en Excel

Het bewaken van de databasegroei is een sleutelfactor bij het plannen van de bron van een server. Gebruik dit script en maak een eenvoudig te begrijpen databasegroeirapport

Waarom u de databasegroei moet volgen

Als u een SQL Database-beheerder bent en u geen “SQL Server databasecapaciteitsplanning ”in uw belangrijkste takenlijst, dan kunt u er zeker van zijn dat databases op uw server uw schijfruimte snel zullen vullen. Het bijhouden van de grootte en groei van SQL-databases is een van de belangrijkste taken van capaciteitsplanning. Dit zorgt er ook voor dat er voldoende schijfruimte is om uw databases te laten groeien.

DIY via SQL Script en Excel

In dit artikel zullen we SQL en Excel gebruiken om de grootte van SQL-databases samen met het patroon vast te leggen. Dit zal ons in staat stellen om te plannen voor dreigende ruimtevereisten en ons ook te helpen de tijdlijn te begrijpen waarin er een zwaar volume is.

Dit proces is onderverdeeld in vier verschillende stappen, zodat u deze zonder problemen kunt volgen.

Stap 1: voer dit script uit in een nieuw zoekvenster.

De uitvoer heeft databasenamen als rijkoppen en Maand als kolomkoppen. Waarden die in de uitvoer worden weergegeven, zijn de databasegrootte in 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:Uitvoerdatabase grootte

Stap 2: Maak een nieuw exemplaar van Excel en kopieer de uitvoer van de vorige stap naar uw nieuwe Excel-blad.

Kopieer de uitvoer naar een Excel-blad

Stap 3: Selecteer nu de eerste twee rijen op het blad en voeg een 2D-lijndiagram in.

Hiermee wordt de trendgrafiek voor de geselecteerde database gemaakt. In de grafiek geeft X-as maanden aan en Y-as geeft de databasegrootte in GB aan.Selecteer de eerste twee rijen op het blad en voeg een 2D-lijndiagram in

Stap 4: Selecteer de volledige gegevens door het 'plus'-symbool te verslepen om ze te omhullen.

Dit toont de trend van alle databases op de kaart.Selecteer de volledige gegevens

Toon de trend van alle databases op de kaart

Als u stap 3 overslaat en een 2D-lijndiagram invoegt door de hele tabel te selecteren, krijgt u nog steeds een diagram, maar de X-as geeft databasenamen aan in plaats van maand. Dit is niet de vereiste uitvoer.Sla stap 3 over en voeg een 2D-lijndiagram in door de hele tabel te selecteren

De uitvoertabel heeft mogelijk enkele NULL-waarden. Dit gebeurt omdat de geschiedenis van de databaseback-up mogelijk geen record voor de database heeft voor die bepaalde maand. Het houdt ook in dat het script verwijst naar de back-upgrootte in de back-uphistorietabel om de groeitrend te volgen. Als een van uw databases niet is opgenomen in het back-upschema, bevat de uitvoertabel nog steeds de databasenaam, maar de waarden voor alle maanden zijn NULL

Te grote database repareren

Als u de bovenstaande strategie in het verleden niet hebt gevolgd en uw database te groot is, kan dit verschillende problemen veroorzaken. In dat geval kun je beter een SQL Server hulpmiddel voor bestandsherstel om het probleem effectief en efficiënt op te lossen.

Auteur Introductie:

Neil Varley is een expert op het gebied van gegevensherstel in DataNumen, Inc., de wereldleider in technologieën voor gegevensherstel, waaronder repareer Outlook-probleem en Excel-herstelsoftwareproducten. Voor meer informatie bezoek www.datanumen.com

Reacties zijn gesloten.