Мониторинг роста базы данных является ключевым фактором при планировании ресурсов сервера. Используйте этот скрипт и создайте простой для понимания отчет о росте базы данных
Зачем вам нужно отслеживать рост базы данных
Если вы являетесь администратором базы данных SQL и у вас нет «SQL Server планирование емкости базы данных» в вашем списке основных задач, то вы можете быть уверены, что базы данных на вашем сервере довольно скоро заполнят ваше дисковое пространство. Отслеживание размера и роста баз данных SQL является одной из основных задач планирования емкости. Это также гарантирует, что на диске будет достаточно места для роста ваших баз данных.
Сделай сам с помощью SQL Script и Excel
В этой статье мы будем использовать SQL и Excel для захвата размера баз данных SQL вместе с шаблоном. Это позволит нам спланировать неизбежные потребности в пространстве, а также поможет нам понять временную шкалу, в течение которой существует большой объем.
Этот процесс разделен на четыре разных этапа, чтобы вы могли без проблем выполнить его.
Шаг 1: Выполните этот сценарий в новом окне запроса.
На выходе будут имена баз данных в виде заголовков строк и Месяц в качестве заголовков столбцов. Значения, показанные в выходных данных, представляют собой размер базы данных в ГБ.
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: Теперь выберите первые две строки на листе и вставьте двухмерную линейную диаграмму.
Это создаст диаграмму тенденций для выбранной базы данных. На диаграмме ось X будет обозначать месяцы, а ось Y — размер базы данных в ГБ.
Шаг 4: Выберите все данные, перетащив символ «плюс», чтобы охватить их.
Это покажет тенденцию всех баз данных на графике.
Если вы пропустите шаг 3 и вставите двухмерную линейную диаграмму, выбрав всю таблицу, вы все равно получите диаграмму, но ось X будет обозначать имена баз данных вместо месяца. Это не обязательный результат.
Таблица вывода может иметь некоторые значения NULL. Это происходит потому, что в истории резервного копирования базы данных может не быть записей для базы данных за этот конкретный месяц. Это также означает, что сценарий обращается к размеру резервной копии в таблице истории резервного копирования, чтобы отслеживать тенденцию роста. Если какая-либо из ваших баз данных не включена в план резервного копирования, выходная таблица по-прежнему будет содержать имя базы данных, но значения для всех месяцев будут NULL.
Исправить слишком большую базу данных
Если вы не следовали вышеуказанной стратегии в прошлом, и размер вашей базы данных слишком велик, это может вызвать различные проблемы. В таком случае лучше найти SQL Server инструмент для восстановления файлов для эффективного и эффективного решения проблемы.
Об авторе:
Нил Варли — эксперт по восстановлению данных в DataNumen, Inc., которая является мировым лидером в области технологий восстановления данных, включая исправить проблему Outlook и программные продукты для восстановления Excel. Для получения дополнительной информации посетите www.datanumen.com





