Мониторингът на растежа на базата данни е ключов фактор при планирането на ресурса на сървъра. Използвайте този скрипт и създайте лесен за разбиране отчет за растежа на базата данни
Защо трябва да наблюдавате растежа на базата данни
Ако сте администратор на база данни на SQL и ако нямате „SQL Server планиране на капацитета на базата данни “във вашия списък с ключови задачи, тогава можете да сте сигурни, че базите данни на вашия сървър ще запълнят дисковото ви пространство доста скоро. Проследяването на размера и растежа на базите данни на SQL е една от основните задачи на планирането на капацитета. Това също така гарантира, че на диска има достатъчно място, за да могат вашите бази данни да растат.
Направи си сам чрез SQL Script и Excel
В тази статия ще използваме SQL и Excel, за да уловим размера на SQL бази данни заедно с модела. Това ще ни позволи да планираме предстоящи космически изисквания и също така ще ни помогне да разберем времевата линия, през която има голям обем.
Този процес е разделен на четири различни стъпки, така че да можете да следвате без никакви проблеми.
Стъпка 1: Изпълнете този скрипт в нов прозорец за заявка.
Изходът ще има имена на бази данни като заглавки на редове и месец като заглавки на колони. Стойностите, показани в изхода, са с размер на базата данни в 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
Изход:
Стъпка 2: Създайте нов екземпляр на Excel и копирайте изхода от предишната стъпка във вашия нов лист на Excel.
Стъпка 3: Сега изберете първите два реда на листа и поставете 2D линейна диаграма.
Това ще създаде диаграма на тенденциите за избраната база данни. В диаграмата X Axis ще означава месеци, а Y Axis ще обозначава размера на базата данни в GB.
Стъпка 4: Изберете всички данни, като плъзнете символа „плюс“, за да ги обгърнете.
Това ще покаже тенденцията на всички бази данни на диаграмата.
Ако пропуснете Стъпка 3 и вмъкнете 2D линейна диаграма, като изберете цялата таблица, пак ще получите диаграма, но оста X ще означава имена на базата данни вместо месец, Това не е необходимият изход.
Изходната таблица може да има някои NULL стойности. Това се случва, защото историята на архивиране на базата данни може да няма никакъв запис за базата данни за този конкретен месец. Това също така предполага, че скриптът се позовава на размера на архива в таблицата на хронологията на архивиране, за да проследи тенденцията на растеж. Ако някоя от вашите бази данни не е включена в плана за архивиране, изходната таблица все още ще съдържа името на базата данни, но стойностите за всички месеци ще бъдат NULL
Коригирайте извънгабаритна база данни
Ако в миналото не спазвате горната стратегия и вашата база данни е извънгабаритна, това може да причини различни проблеми. В такъв случай е по-добре да намерите SQL Server инструмент за възстановяване на файлове за ефективно и ефикасно решаване на проблема.
Въведение на автора:
Нийл Варли е експерт по възстановяване на данни в DataNumen, Inc., която е световен лидер в технологиите за възстановяване на данни, включително поправяне на проблема с Outlook и excel софтуерни продукти за възстановяване. За повече информация посетете WWW.datanumen.com





