Como monitorar SQL Server Crescimento de banco de dados usando TSQL e Excel

Compartilhe agora:

Monitorar o crescimento do banco de dados é um fator chave no planejamento dos recursos de um servidor. Use este script e crie um relatório de crescimento de banco de dados fácil de entender

Por que você precisa monitorar o crescimento do banco de dados

Se você é um administrador de banco de dados SQL e não está tendo “SQL Server planejamento de capacidade de banco de dados” em sua lista de tarefas principais, então você pode ter certeza de que os bancos de dados em seu servidor preencherão seu espaço em disco em breve. Rastrear o tamanho e o crescimento dos bancos de dados SQL é uma das principais tarefas do planejamento de capacidade. Isso também garante que haja espaço suficiente em disco para o crescimento de seus bancos de dados.

Faça você mesmo via SQL Script e Excel

Neste artigo, usaremos SQL e Excel para capturar o tamanho dos bancos de dados SQL junto com o padrão. Isso nos permitirá planejar os requisitos de espaço iminentes e também nos ajudará a entender a linha do tempo durante a qual há um grande volume.

Este processo é subdividido em quatro etapas diferentes para que você possa seguir sem problemas.

Passo 1: Execute este script em uma nova janela de consulta.

A saída terá nomes de banco de dados como cabeçalhos de linha e Mês como cabeçalhos de coluna. Os valores mostrados na saída são o tamanho do banco de dados em 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

Saída:Tamanho do banco de dados de saída

Etapa 2: crie uma nova instância do Excel e copie a saída da etapa anterior para sua nova planilha do Excel.

Copie a saída para a planilha do Excel

Passo 3: Agora selecione as duas primeiras linhas na folha e insira um gráfico de linha 2D.

Isso criará o gráfico de tendências para o banco de dados selecionado. No Gráfico, o Eixo X denotará os meses e o Eixo Y denotará o tamanho do banco de dados em GB.Selecione as duas primeiras linhas na folha e insira um gráfico de linhas 2D

Etapa 4: selecione todos os dados arrastando o símbolo 'mais' para envolvê-los.

Isso mostrará a tendência de todos os bancos de dados no gráfico.Selecione todos os dados

Mostrar a tendência de todos os bancos de dados no gráfico

Se você pular a Etapa 3 e inserir um gráfico de linha 2D selecionando a tabela inteira, ainda obterá um gráfico, mas o eixo X indicará nomes de banco de dados em vez de Mês. Esta não é a saída necessária.Ignore a Etapa 3 e insira um gráfico de linha 2D selecionando a tabela inteira

A tabela de saída pode ter alguns valores NULL. Isso acontece porque o histórico de backup do banco de dados pode não ter nenhum registro para o banco de dados daquele mês específico. Também implica que o script se refere ao tamanho do backup na tabela de histórico de backup para rastrear a tendência de crescimento. Se algum de seus bancos de dados não estiver incluído no plano de backup, a tabela de saída ainda conterá o nome do banco de dados, mas os valores para todos os meses serão NULL

Corrigir banco de dados superdimensionado

Se você não seguiu a estratégia acima no passado e seu banco de dados está superdimensionado, isso pode causar vários problemas. Nesse caso, é melhor você encontrar um SQL Server ferramenta de recuperação de arquivos para resolver o problema de forma eficaz e eficiente.

Introdução do autor:

Neil Varley é um especialista em recuperação de dados em DataNumen, Inc., líder mundial em tecnologias de recuperação de dados, incluindo reparar problema do Outlook e produtos de software de recuperação do Excel. Para mais informações visite www.datanumen.com

Compartilhe agora:

Comentários estão fechados.