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:
Paso 2: cree una nueva instancia de Excel y copie el resultado del paso anterior en su nueva 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.
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.
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.
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





