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:
Krok 2: Utwórz nowe wystąpienie programu Excel i skopiuj dane wyjściowe z poprzedniego kroku do nowego arkusza 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.
Krok 4: Wybierz całe dane, przeciągając symbol „plus”, aby je objąć.
To pokaże 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.
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





