Thiago Zavaschi R2 www.zavaschi.com

5Jan/107

Prevendo o crescimento da suas databases com o SQL Server Data Mining Add-ins for Microsoft Office 2007 – Parte I

Olá pessoal,

O artigo de hoje é a base de um dos itens/indicadores utilizados nas suas análises de health check dos servidores SQL Server: Verificar o crescimento dos seus arquivos de base de dados e log.

Antes de mais nada vamos revisar um ponto importante quanto ao crescimento das databases:

É muito comum encontrar em servidores configurações como: crescimento proporcional 10% para a base e para o arquivo de log e com irrestrito por exemplo. A imagem a seguir mostra onde visualizar estas informações.

img1

Em que isso impacta? Valores pequenos de taxas de crescimento para bases que crescem muito é extremamente prejudicial, pois teremos altas taxas (overhead) de I/O para o crescimento dos arquivos. Por outro lado, valores muito grandes podem gerar um uso descontrolado dos seus discos.

Em um mundo/cenário ideal os crescimentos das databases são monitorados e o aumento físico dos mesmos são planejados e executados de maneira manual. Claro que pela comodidade, é difícil DBAs optarem por esta abordagem.

Mas e como monitorar, ou melhor, prever o crescimento, já que muitos DBAs deixam essas configurações automáticas? Uma das maneiras que eu acho muito elegante é através da utilização do Add-in para o Office 2007, mais especificamente a opção Forecast.

O conteúdo deste post pode ser adaptado para fazer outras previsões através do Office!

O que preciso para começar? 

“Então Thiago, o que eu preciso para iniciar?”

Será necessário basicamente:

Microsoft Office Excel 2007; (a princípio não funciona no Office 2010 beta, mas estou verificando se há algum meio).

E um dos pares abaixo:

SQL Server Analysis Service 2008;
Data Mining Add-Ins for Office 2007 (SQL 2008);
http://www.microsoft.com/downloads/details.aspx?familyid=AF070F2C-46F4-47B6-B7BF-48979B999AEB&displaylang=en

OU

SQL Server Analysis Service 2005;
Data Mining Add-Ins for Office 2007 (SQL 2005);
http://www.microsoft.com/downloads/details.aspx?familyid=7C76E8DF-8674-4C3B-A99B-55B17F3C4C51&displaylang=en

Mãos a obra!

Coletando os dados de tamanho das databases

O primeiro passo é definir um mecanismo para a coleta dos dados.

Para isso vamos criar uma tabela que armazenará os dados relativos ao tamanho dos arquivos. Essa tabela poderá ter variações para outros fins, mas manterei ela com um certo grau de simplicidade.

CREATE TABLE TamanhoBaseHistorico
(
    id INT PRIMARY KEY IDENTITY,
    nome varchar(128) NOT NULL, -- nome da base
    nome_fisico VARCHAR(2000) NOT NULL, -- nome físico do arquivo, com diretório
    tamanho INT NOT NULL, -- tamanho do arquivo em Kb
    dblog BIT NOT NULL, -- se o arquivo é de log
    data DATETIME NOT NULL -- data da medição
)
GO

De tempos em tempos algum mecanismo deverá coletar os dados necessários e inserí-los nesta tabela.

Entre outras formas (como por exemplo o powershell), podemos fazer uso da system stored procedure chamada sp_msforeachdb e associar a execução da mesma a um job do banco de dados.

Essa stored procedure executa um comando para cada database, substituindo a “tag” [?] pelo nome da base. As informações virão da system view chamada sys.database_files.

O comando que será agendado como um job no SQL Server Agent será, para o nosso caso, o seguinte:

EXECUTE sp_msforeachdb 
        'INSERT INTO TamanhoBaseHistorico 
        SELECT name, physical_name, size, type, GETDATE() 
        FROM [?].sys.database_files'

 

Não vou entrar nos méritos da criação de jobs no Agent, mas vamos assumir que estes dados sejam carregados todos os meses, uma vez por mês.

Na próxima parte veremos o processo de instalação do add-in e a utilização do mesmo!

Abraços,

Thiago Zavaschi

Comments (7) Trackbacks (0)
  1. Olá Thiago,

    estava lendo esse post, relacionado a monitoramento de crescimento de bases de dados…

    tens algum material que possa me auxiliar na finalização do processo de monitoramento, que você sita no post acima. “Prevendo o crescimento da suas databases com o SQL Server Data Mining Add-ins for Microsoft Office 2007 – Parte I”.

    Atenção Marcos.

    Abraços..

  2. Olá Marcos,
    Esta semana devo terminar a parte dois do post.
    Não deixe de acompanhar!
    Grande abraço!

  3. Zavaschi,
    você chegou a fazer a parte 2 desse post?

  4. Estou devendo!
    Farei no próximo post!

  5. Boa tarde, será que termos a parte dois ainda?rss
    Estou muito interessado…
    Abraço!

  6. Bom dia,

    Acho que o amigo desistiu da publicação, mas mesmo assim agradeço pelo primeiro post.

  7. Olá pessoal, por vários motivos não consegui escrever o post. Atualmente estou migrando este blog para o http://zavaschi.azurewebsites.net/ (em breve devo migrar o zavaschi.com para apontar para lá). Os novos posts estão saindo apenas nele (muitos problemas com o host atual que esse aqui utiliza).
    Vou fazer o post e também mostrar como fazer com o R Services do SQL 2016 :)


Leave a comment


No trackbacks yet.