Jak monitorować SQL Server Rozwój bazy danych przy użyciu TSQL i Excela

Podziel się teraz:

Monitorowanie wzrostu bazy danych jest kluczowym czynnikiem w planowaniu zasobów serwera. Użyj tego skryptu i utwórz łatwy do zrozumienia raport wzrostu bazy danych

Dlaczego musisz monitorować wzrost bazy danych

Jeśli jesteś administratorem bazy danych SQL i nie masz „SQL Server planowanie pojemności bazy danych ”na liście kluczowych zadań, możesz być pewien, że bazy danych na serwerze wkrótce zapełnią miejsce na dysku. Śledzenie rozmiaru i wzrostu baz danych SQL jest jednym z podstawowych zadań planowania wydajności. Zapewnia to również wystarczającą ilość miejsca na dysku, aby bazy danych mogły się rozwijać.

Zrób to sam za pomocą skryptu SQL i programu Excel

W tym artykule użyjemy SQL i Excela do przechwycenia rozmiaru baz danych SQL wraz ze wzorcem. Pozwoli nam to zaplanować nieuchronne zapotrzebowanie na przestrzeń, a także pomoże nam zrozumieć harmonogram, w którym występuje duża ilość.

Ten proces jest podzielony na cztery różne etapy, dzięki czemu można go bezproblemowo wykonać.

Krok 1: Wykonaj ten skrypt w nowym oknie zapytania.

Dane wyjściowe będą miały nazwy baz danych jako nagłówki wierszy i Miesiąc jako nagłówki kolumn. Wartości wyświetlane w danych wyjściowych to rozmiar bazy danych w 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

wyjście:Rozmiar wyjściowej bazy danych

Krok 2: Utwórz nowe wystąpienie programu Excel i skopiuj dane wyjściowe z poprzedniego kroku do nowego arkusza Excel.

Skopiuj wynik do arkusza programu Excel

Krok 3: Teraz wybierz pierwsze dwa wiersze na arkuszu i wstaw wykres liniowy 2D.

Spowoduje to utworzenie wykresu trendów dla wybranej bazy danych. Na wykresie oś X będzie oznaczać miesiące, a oś Y będzie oznaczać rozmiar bazy danych w GB.Wybierz pierwsze dwa wiersze na arkuszu i wstaw wykres liniowy 2D

Krok 4: Wybierz całe dane, przeciągając symbol „plus”, aby je objąć.

To pokaże trend wszystkich baz danych na wykresie.Wybierz całe dane

Pokaż trend wszystkich baz danych na wykresie

Jeśli pominiesz krok 3 i wstawisz wykres liniowy 2D, wybierając całą tabelę, nadal otrzymasz wykres, ale oś X będzie oznaczać nazwy baz danych zamiast miesiąca. To nie jest wymagane wyjście.Pomiń krok 3 i wstaw wykres liniowy 2D, wybierając całą tabelę

Tabela wyjściowa może mieć pewne wartości NULL. Dzieje się tak, ponieważ historia kopii zapasowych bazy danych może nie zawierać żadnego rekordu bazy danych dla tego konkretnego miesiąca. Oznacza to również, że skrypt odwołuje się do rozmiaru kopii zapasowej w tabeli historii kopii zapasowych, aby śledzić trend wzrostu. Jeśli żadna z Twoich baz danych nie jest uwzględniona w planie tworzenia kopii zapasowych, tabela wyjściowa nadal będzie zawierała nazwę bazy danych, ale wartości dla wszystkich miesięcy będą wynosić NULL

Napraw zbyt dużą bazę danych

Jeśli w przeszłości nie stosowałeś się do powyższej strategii, a Twoja baza danych jest zbyt duża, może to powodować różne problemy. W takim przypadku lepiej znaleźć plik SQL Server narzędzie do odzyskiwania plików skutecznie i wydajnie rozwiązać problem.

Wprowadzenie autora:

Neil Varley jest ekspertem w dziedzinie odzyskiwania danych w DataNumen, Inc., która jest światowym liderem w technologiach odzyskiwania danych, w tym napraw problem z programem Outlook i doskonałe oprogramowanie do odzyskiwania. po więcej informacji odwiedź www.datanumen.com

Podziel się teraz:

Możliwość dodawania komentarzy nie jest dostępna.