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:
Stap 2: Maak een nieuw exemplaar van Excel en kopieer de uitvoer van de vorige stap naar uw nieuwe 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.
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.
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.
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





