Eu tenho um MS-SQL 2014 SP1 - dois nós AlwaysOn AG (um primário e um secundário somente leitura) com cerca de 10 bancos de dados com tamanho de 20 a 30 GB no total. Tenho algumas dúvidas sobre o agendamento da reconstrução do índice e coleta de estatísticas.
Planejei agendá-lo semanalmente por meio de planos de manutenção. Normalmente nas noites de domingo, onde não haverá carga alguma no primário.
Devo executar o trabalho no primário ou na réplica? Se eu executá-lo apenas no secundário, quais benefícios obtenho? ou vice-versa? (O que significa que devo executar em ambos os nós)
É provável que ocorra corrupção se eu usar o SP1 e reconstruir o índice por meio de planos de manutenção? Como mencionado aqui
Você deve usar scripts de manutenção de índice inteligentes em oposição à tarefa de manutenção .
Sim, pois são replicados em réplicas secundárias.
você não pode executar na réplica secundária.
A manutenção do índice gera muita atividade de log de transações que afeta seu RTO e RPO. Além disso, aumenta o backlog de redo em réplicas secundárias.
Você deve seguir as recomendações para manutenção de índice com grupos de disponibilidade AlwaysOn :
WAIT_AT_LOW_PRIORITY
,MAX_DURATION
eABORT_AFTER_WAIT
Além disso, observe que uma tabela particionada pode limitar o tempo de execução MAX DOP de criar/alterar índice
Como você está no SP1 (
12.0.2370 or greater
) , você deve ficar bem.Acho que existe outra maneira de reconstruir o índice fragmentado. Você pode criar um sp e agendá-lo via SQL Server Agent ou via agendador de tarefas. A consulta abaixo reconstrói ou reorganiza apenas os índices necessários em vez de toda a reconstrução do índice. Como recomendação geral, o índice precisa reconstruir que obtenha uma porcentagem de fragmento superior a 30% e reorganize o índice que possui porcentagem de fragmento entre 10% e 30%
Saiba mais detalhes Click Hare
O índice de reconstrução do script abaixo um por um, portanto, não será uma operação expansiva no banco de dados de produção.