Как контролировать SQL Server Рост базы данных с использованием TSQL и Excel

Поделись сейчас:

Мониторинг роста базы данных является ключевым фактором при планировании ресурсов сервера. Используйте этот скрипт и создайте простой для понимания отчет о росте базы данных

Зачем вам нужно отслеживать рост базы данных

Если вы являетесь администратором базы данных SQL и у вас нет «SQL Server планирование емкости базы данных» в вашем списке основных задач, то вы можете быть уверены, что базы данных на вашем сервере довольно скоро заполнят ваше дисковое пространство. Отслеживание размера и роста баз данных SQL является одной из основных задач планирования емкости. Это также гарантирует, что на диске будет достаточно места для роста ваших баз данных.

Сделай сам с помощью SQL Script и Excel

В этой статье мы будем использовать SQL и Excel для захвата размера баз данных SQL вместе с шаблоном. Это позволит нам спланировать неизбежные потребности в пространстве, а также поможет нам понять временную шкалу, в течение которой существует большой объем.

Этот процесс разделен на четыре разных этапа, чтобы вы могли без проблем выполнить его.

Шаг 1: Выполните этот сценарий в новом окне запроса.

На выходе будут имена баз данных в виде заголовков строк и Месяц в качестве заголовков столбцов. Значения, показанные в выходных данных, представляют собой размер базы данных в ГБ.

объявить @v_count как целое, @do_count как целое, @v_month как varchar(20),@sql как varchar(5000) создать таблицу [t_databases] ( Database_Name varchar(200), январь с плавающей запятой(3), февраль с плавающей запятой(3), Мартовский плавающий(3), апрельский плавающий(3), майский плавающий(3), июньский плавающий(3), июльской плавающий(3), августовский плавающий(3), сентябрьский плавающий(3), октябрьский плавающий(3), ноябрьский плавающий (3), декабрь float(3), ) создать таблицу t_databases_gateway ( Database_Name varchar(200), Database_Size float(3)) установить @v_count = (выбрать COUNT(*) из t_databases ), если @v_count = 0 начать вставлять в t_databases( Database_Name) выберите имя из sysdatabases end if @v_count <> 0 begin -- этот сценарий фиксирует размер всех баз данных. Вы можете добавить предложение where для захвата размера конкретного имени базы данных. 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') – изменить год на 2017 или другой год по вашему требованию обрезать таблицу master.dbo.t_databases_gateway вставить в master.dbo.t_databases_gateway выбрать отдельный (msdb.dbo.backupset.[database_name]),max(msdb.dbo.backupset.[Backup_Size]/1073741824) из msdb.dbo.backupset внутреннее соединение master.dbo.t_databases на msdb.dbo.backupset.[database_name] = master.dbo.t_databases.[Database_Name], где datepart(m,msdb.dbo.backupset.[backup_finish_date]) = @do_count и datepart(yyyy,msdb.dbo.backupset.[backup_finish_date] ) = группа 2015 по msdb.dbo.backupset.[database_name] set @sql = 'update master.dbo.t_databases set ' + @v_month + ' = (выберите Database_Size from master.dbo.t_databases_gateway, где 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: Теперь выберите первые две строки на листе и вставьте двухмерную линейную диаграмму.

Это создаст диаграмму тенденций для выбранной базы данных. На диаграмме ось X будет обозначать месяцы, а ось Y — размер базы данных в ГБ.Выберите первые две строки на листе и вставьте двухмерную линейную диаграмму

Шаг 4: Выберите все данные, перетащив символ «плюс», чтобы охватить их.

Это покажет тенденцию всех баз данных на графике.Выберите все данные

Показать тренд всех баз данных на графике

Если вы пропустите шаг 3 и вставите двухмерную линейную диаграмму, выбрав всю таблицу, вы все равно получите диаграмму, но ось X будет обозначать имена баз данных вместо месяца. Это не обязательный результат.Пропустите шаг 3 и вставьте двухмерную линейную диаграмму, выбрав всю таблицу

Таблица вывода может иметь некоторые значения NULL. Это происходит потому, что в истории резервного копирования базы данных может не быть записей для базы данных за этот конкретный месяц. Это также означает, что сценарий обращается к размеру резервной копии в таблице истории резервного копирования, чтобы отслеживать тенденцию роста. Если какая-либо из ваших баз данных не включена в план резервного копирования, выходная таблица по-прежнему будет содержать имя базы данных, но значения для всех месяцев будут NULL.

Исправить слишком большую базу данных

Если вы не следовали вышеуказанной стратегии в прошлом, и размер вашей базы данных слишком велик, это может вызвать различные проблемы. В таком случае лучше найти SQL Server инструмент для восстановления файлов для эффективного и эффективного решения проблемы.

Об авторе:

Нил Варли — эксперт по восстановлению данных в DataNumen, Inc., которая является мировым лидером в области технологий восстановления данных, включая исправить проблему Outlook и программные продукты для восстановления Excel. Для получения дополнительной информации посетите www.datanumen.com

Поделись сейчас:

Комментарии закрыты.