sexta-feira, 7 de maio de 2010

Clone de Banco de Dados para analisar plano de execução

Versões do SQL Server: 2005 e 2008.

Olá... o post de hoje é muito útil para quem trabalha com tuning de consultas, principalmente consultores!

Você é um consultor e precisa melhorar o desempenho de algumas consultas... Você terá que trabalhar no cliente porque este possui um banco de dados de 400GB de informações sigilosas! Bem, fazer Backup e levar para casa (ou escritório) é inviável devido ao tamanho do banco de dados e a necessidade de sigilo das informações. Uma alternativa é fazer um Clone do Banco de Dados levando a estrutura e as estatísticas de banco de dados, sem levar os dados. Um processo muito mais rápido que Backup e Restore, ocupa menos espaço em disco e resolve o problema do sigilo pois não leva os dados.

Para fazer um clone do Banco de dados basta entrar no Management Studio (SSMS), conectar na instância que contém o banco, expandir “Databases”, clicar com o botão direito no banco, selecionar “Tasks” e “Generate Scripts”.


Selecione o banco de dados e marque a opção “Script all objects in the selected database” como na figura abaixo:


Na próxima tela “Choose Script Options” altere algumas propriedades utilizando a tabela abaixo:


Na última tela gere o script para um arquivo qualquer, veja:


O próximo passo é editar o arquivo gerado... No início do arquivo, no comendo CREATE DATABASE altere o parâmetro SIZE do arquivo de dados e log para valores menores, pois não vamos ter os dados neste banco! Se for necessário altere a localização dos arquivos.

Agora basta executar o script (você verá alguns de GRANT para usuários inexistentes). Para conferir as estatísticas execute o DBCC SHOW_STATISTICS (,) para conferir! As tabelas estão vazias, mas as estatísticas refletem os dados da produção!

Pronto agora é só analisar as consultas, pois os planos de execução serão os mesmos da produção!

Até o próximo post,
Landry.

Nenhum comentário: