none
Planos de Manutenção RRS feed

  • Pergunta

  • Prezados,

                Estou buscando informações sobre Manutenção preventiva do SQL SERVER existe vários Planos de Manutenção no SQL SERVER, porém não encontrei nada relacionados a periodicidade que deve ser aplicada, exemplo de quanto a quanto tempo deve rodar os planos ( diariamente, semanalmente, mensalmente .... ? )

    CHECK DATABASES INTEGRITY

    SHRINK DATABASE

    REORGANIZE INDEX

    REBUILD INDEX

    UPDATE STATITICS

    CLEAN UP HISTORY

    Grato

    Bruno


    • Editado Bruno Avanso quinta-feira, 5 de julho de 2012 11:08
    quinta-feira, 5 de julho de 2012 11:07

Respostas

Todas as Respostas

  • Olá Bruno,

    a utilização de maintenace plans depende de como o banco está configurado, porém vou dar uma explicação sobre as opções:

    CHECK DATABASE INTEGRITY -> executa verificação de integridade dos bancos. Durante essa task são executados os comandos DBCC CHECKCATALOG, DBCC CHECKTABLE e DBCC CHECKALLOC.

    SHRINK DATABASE -> realiza redução dos arquivos de dados.

    REORGANIZE INDEX -> Reordena os índices em tabelas.

    REBUILD INDEX -> Dropa os índices atuais e recria novos.

    CLEANUP HISTORY -> Remove histórico de informações do banco MSDB, responsável por gerenciar as atividades de manutenção.

    UPDATE STATISTICS -> atualiza as estatísticas de consulta às tabelas.

    Em relação à periodicidade de execução, alguns devem ser executados semanalmente e outros diariamente. Em meus ambiente, eu costumo configurar desse modo:

    UPDATE STATISTICS -> não crio um maintenance plan, configuro a opção AUTO UPDATE STATISTICS no database, fazendo com que seja automático;

    REORGANIZE INDEX -> Executo 1 vez por dia;

    REBUILD INDEX -> a necessidade de execução dessa task depende do percentual de fragmentação dos índices, mas costumo executar essa task 1 vez por semana (de preferência no final de semana e na madrugada);

    CHECK DATABASE INTEGRITY -> habilito a execução semanal, porém dependendo do banco (volume de dados) e da criticidade, executo diariamente. Apenas lembrando que essa task não altera nada no banco, apenas faz uma verificação;

    SHRINK DATABASE -> não costumo utilizar essa task, já que ela reduz o tamanho do arquivo de dados e de log, realizando truncate. Isso significa que se você tiver rotina de backups dos logs, o shrink irá impedir um restore dos mesmos até o próximo backup full. Porém se o seu banco tem um crescimento considerável, você pode criar o seguinte esquema:

    Backups full e de logs (diários); Shrink database mensal, sendo que no mesmo plano, insira um backup full e com isso você terá a continuidade dos seus backups de logs;

    HISTORY CLEANUP -> não costumo criar pois ele faz apenas limpeza do histórico de atividades gerenciadas pelo MSDB (backups, execução de jobs, etc.).

    Lembrando que meu esquema de tarefas de manutenção podem não ser o ideal para seu ambiente, o ideal é sempre avaliar o ambiente e identificar o que é mais ideal

    Você pode encontrar mais informações pesquisando no site MSDN: http://msdn.microsoft.com/pt-br/library/bb418471(v=sql.10)

    Espero ter ajudado.


    Angelo Máximo
    MCSA Windows 2003 | MCTS SQL Server 2008
    angmms@gmail.com
    http://angmaximo.wordpress.com/

    • Sugerido como Resposta Angelo Maximo quinta-feira, 5 de julho de 2012 12:26
    quinta-feira, 5 de julho de 2012 12:25
  • Muito bom, fiquei com uma duvida em relação no seguinte ponto,

    REBUILD INDEX -> a necessidade de execução dessa task depende do percentual de fragmentação dos índices, mas costumo executar essa task 1 vez por semana (de preferência no final de semana e na madrugada);

    Quando você diz percentual de fragmentação dos indices como posso verificar este percentual ? Qual a faixa de percentual recomendado?

    Grato

    Cláudio Bruno


    Bruno Avanso

    • Marcado como Resposta Bruno Avanso domingo, 28 de julho de 2013 14:45
    quinta-feira, 5 de julho de 2012 16:06
    • Marcado como Resposta Bruno Avanso domingo, 28 de julho de 2013 14:46
    quinta-feira, 5 de julho de 2012 18:03
  • Bruno, a Microsoft recomenda que o rebuild seja executado quando os índices estiverem com um percentual de fragmentação em no mínimo com valor de 30%. Isso significa que quanto maior o valor de fragmentação, pior será o desempenho das consultas.

    A recomendação do Rafael é muito boa, usando a sys.dm_db_index_physical_stats você terá a informação sobre o nível de fragmentação de seus índices.

    Espero ter ajudado.


    Angelo Máximo
    MCSA Windows 2003 | MCTS SQL Server 2008
    angmms@gmail.com
    http://angmaximo.wordpress.com/


    • Editado Angelo Maximo quinta-feira, 5 de julho de 2012 20:52
    • Sugerido como Resposta Angelo Maximo quarta-feira, 11 de julho de 2012 21:20
    • Marcado como Resposta Bruno Avanso domingo, 28 de julho de 2013 14:46
    quinta-feira, 5 de julho de 2012 19:28