A manutenção é realizada através da execução de duas procedures. Uma para reorganizar os índices e outra para atualizar as estatísticas.
Com relação à procedure de reorganização de índices, para executá-la é necessário informar alguns parâmetros:
•@BASE: Especifica se a manutenção ocorrerá para todas as bases de dados ou uma base de dados específica. Para todas informar o valor “TODAS”, se for uma informar o nome dela.
•@DIF_MIN Janela de manutenção em minutos a partir do momento de execução da procedure. Definir a quantidade de minutos que a procedure deve permanecer em execução definindo assim sua janela de manutenção.
•@MED_FRAG Percentual de fragmentação que o índice deve ter para ter manutenção. Qualquer índice que tiver fragmentação igual ou superior a especificada receberá manutenção.
SUGESTÕES:
•@MED_FRAG=10 - Fragmentação abaixo disso não chega a comprometer o desempenho.
•@DIF_MIN = 180 – Tempo suficiente para reorganizar todos os índices.
Da mesma forma, para executar a procedure de atualização de estatísticas deve-se informar os seguintes parâmetros:
•@BASE Especifica se a manutenção ocorrerá para todas as bases de dados ou uma base de dados específica. Para todas informar o valor “TODAS”, se for apenas uma informar o nome dela.
•@DIF_MIN Janela de manutenção em minutos a partir do momento de execução da procedure. Definir a quantidade de minutos que a procedure deve permanecer em execução definindo assim sua janela de manutenção.
•@DUPD_STATS Quantidade de dias a partir da data atual que define se a estatística está desatualizada.
•@VNULL Quando S todas as estatísticas são atualizadas, inclusive estatísticas que nunca foram atualizadas ou estatísticas que não necessitam atualização.
SUGESTÕES:
•@DIF_MIN=180 - Tempo suficiente para atualizar todas as estatísticas.
•@VNULL = “s” para a primeira execução (manual) e no agendamento “n”.
•@DUPD_STATS = 6 – No caso da manutenção ocorrer semanalmente.
Na primeira execução de um ambiente em produção é importante atualizar a estatística de todas as tabelas. |
Script para executar as procedures manualmente:
exec TK_MAN_STATS @BASE='<NOME DO BANCO>', @DIF_MIN=180, @DUPD_STATS=0, @VNULL='s' exec TK_MAN_IDX @BASE='<NOME DO BANCO>',@DIF_MIN=180,@MED_FRAG=10 |