Как да наблюдавате SQL Server Растеж на базата данни с помощта на TSQL и Excel

Споделете сега:

Мониторингът на растежа на базата данни е ключов фактор при планирането на ресурса на сървъра. Използвайте този скрипт и създайте лесен за разбиране отчет за растежа на базата данни

Защо трябва да наблюдавате растежа на базата данни

Ако сте администратор на база данни на 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.

Копирайте изхода в лист на Excel

Стъпка 3: Сега изберете първите два реда на листа и поставете 2D линейна диаграма.

Това ще създаде диаграма на тенденциите за избраната база данни. В диаграмата X Axis ще означава месеци, а Y Axis ще обозначава размера на базата данни в GB.Изберете първите два реда на листа и поставете двумерна диаграма

Стъпка 4: Изберете всички данни, като плъзнете символа „плюс“, за да ги обгърнете.

Това ще покаже тенденцията на всички бази данни на диаграмата.Изберете Цялите данни

Покажете тенденцията на всички бази данни на диаграмата

Ако пропуснете Стъпка 3 и вмъкнете 2D линейна диаграма, като изберете цялата таблица, пак ще получите диаграма, но оста X ще означава имена на базата данни вместо месец, Това не е необходимият изход.Пропуснете стъпка 3 и вмъкнете двумерна диаграма, като изберете Цялата таблица

Изходната таблица може да има някои NULL стойности. Това се случва, защото историята на архивиране на базата данни може да няма никакъв запис за базата данни за този конкретен месец. Това също така предполага, че скриптът се позовава на размера на архива в таблицата на хронологията на архивиране, за да проследи тенденцията на растеж. Ако някоя от вашите бази данни не е включена в плана за архивиране, изходната таблица все още ще съдържа името на базата данни, но стойностите за всички месеци ще бъдат NULL

Коригирайте извънгабаритна база данни

Ако в миналото не спазвате горната стратегия и вашата база данни е извънгабаритна, това може да причини различни проблеми. В такъв случай е по-добре да намерите SQL Server инструмент за възстановяване на файлове за ефективно и ефикасно решаване на проблема.

Въведение на автора:

Нийл Варли е експерт по възстановяване на данни в DataNumen, Inc., която е световен лидер в технологиите за възстановяване на данни, включително поправяне на проблема с Outlook и excel софтуерни продукти за възстановяване. За повече информация посетете WWW.datanumen.com

Споделете сега:

Коментарите са забранени.