Cómo monitorear SQL Server Crecimiento de la base de datos usando TSQL y Excel

Comparte ahora:

Monitorear el crecimiento de la base de datos es un factor clave en la planificación de los recursos de un servidor. Utilice este script y cree un informe de crecimiento de la base de datos fácil de entender

Por qué necesita monitorear el crecimiento de la base de datos

Si es administrador de la base de datos SQL y no tiene "SQL Server planificación de la capacidad de la base de datos ”en su lista de tareas clave, entonces puede estar seguro de que las bases de datos en su servidor llenarán su espacio en disco muy pronto. El seguimiento del tamaño y el crecimiento de las bases de datos SQL es una de las tareas principales de la planificación de la capacidad. Esto también asegura que haya suficiente espacio en el disco para que sus bases de datos crezcan.

Bricolaje a través de SQL Script y Excel

En este artículo, utilizaremos SQL y Excel para capturar el tamaño de las bases de datos SQL junto con el patrón. Esto nos permitirá planificar los requisitos de espacio inminentes y también nos ayudará a comprender la línea de tiempo durante la cual hay un gran volumen.

Este proceso se subdivide en cuatro pasos diferentes para que pueda seguirlo sin problemas.

Paso 1: Ejecute este script en una nueva ventana de consulta.

La salida tendrá nombres de base de datos como encabezados de fila y Mes como encabezados de columna. Los valores que se muestran en la salida son el tamaño de la base de datos en 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

salida:Tamaño de la base de datos de salida

Paso 2: cree una nueva instancia de Excel y copie el resultado del paso anterior en su nueva hoja de Excel.

Copie la salida en una hoja de Excel

Paso 3: Ahora seleccione las dos primeras filas de la hoja e inserte un gráfico de líneas 2D.

Esto creará el gráfico de tendencias para la base de datos seleccionada. En el gráfico, el eje X indicará meses y el eje Y indicará el tamaño de la base de datos en GB.Seleccione las dos primeras filas de la hoja e inserte un gráfico de líneas 2D

Paso 4: Seleccione todos los datos arrastrando el símbolo 'más' para envolverlos.

Esto mostrará la tendencia de todas las bases de datos en el gráfico.Seleccione los datos completos

Muestre la tendencia de todas las bases de datos en el gráfico

Si omite el paso 3 e inserta un gráfico de líneas 2D seleccionando la tabla completa, obtendrá un gráfico, pero el eje X indicará los nombres de la base de datos en lugar del mes. Este no es el resultado requerido.Omita el paso 3 e inserte un gráfico de líneas 2D seleccionando la tabla completa

La tabla de salida puede tener algunos valores NULL. Esto sucede porque el historial de copias de seguridad de la base de datos podría no tener ningún registro de la base de datos para ese mes en particular. También implica que la secuencia de comandos se refiere al tamaño de la copia de seguridad en la tabla del historial de copias de seguridad para seguir la tendencia de crecimiento. Si alguna de sus bases de datos no está incluida en el plan de copia de seguridad, la tabla de salida seguirá teniendo el nombre de la base de datos, pero los valores para todos los meses serán NULL

Reparar base de datos de gran tamaño

Si no sigue la estrategia anterior en el pasado y su base de datos está sobredimensionada, puede causar varios problemas. En tal caso, es mejor que busque un SQL Server herramienta de recuperación de archivos para resolver el problema de manera efectiva y eficiente.

Introducción del autor:

Neil Varley es un experto en recuperación de datos en DataNumen, Inc., que es el líder mundial en tecnologías de recuperación de datos, incluyendo reparar problema de Outlook y productos de software de recuperación de Excel. Para más información visite www.datanumen.com

Comparte ahora:

Los comentarios están cerrados.