Eu tenho trabalhos semanais e noturnos do SQL Server Agent executando planos de manutenção semanais e noturnos, resp.
Estes planos de manutenção semanal (ao domingo) e noturno (nas outras 6 noites da semana) diferem apenas na 1ª tarefa de um total de seis etapas consecutivas. Ou seja, no plano de manutenção noturno/diário, o primeiro passo é " Reorganizar índices em todos os bancos de dados do usuário" e no plano de manutenção semanal/domingo, o primeiro passo é " Reconstruir índices em todos os bancos de dados do usuário".
É possível e como executar apenas um (em vez de dois) plano de manutenção, todas as 7 noites da semana, com a condição de que em 6 dias o 1º passo seja um (Reorganizar Índices) e nos restantes 1 dia da semana o 1º passo seja outro (recriar índices) ?
SQL Server 2012 R2 no Windows Server 2008 R2
Não tenho certeza de quão sujo você deseja obter neste, mas o único método será abrir o SQL Server Data Tools e criar (ou modificar) um pacote SSIS. Uma seria importar o plano de manutenção para o SQL Server 2012 Data Tools e modificar o pacote SSIS. A outra seria criá-lo do zero. Você tem as mesmas opções dos planos de manutenção ao criar um pacote SSIS.
A única coisa que você deseja adicionar é uma tarefa de expressão , que é uma adição incrível ao SQL Server 2012. Você pode usar a expressão DATEPART SSIS para determinar se é um dia da semana ou fim de semana com base na variável do sistema para hora de início do pacote. Agora eu não sou o melhor com expressões, mas essa seria a que eu usaria:
Isso retornará um número entre 1 e 7, com 1 = domingo e 7 = sábado. Portanto, a partir dessa tarefa, você teria duas restrições de precedência indo para cada caminho do seu plano de manutenção. Se o valor for 1 (um) então vai para a tarefa de reconstrução do índice, se for qualquer outro vai para a tarefa de reorganização.
Embora, se eu fosse entrar em tantos detalhes, pararia de usar a tarefa de índice com planos de manutenção. Eu sugeriria usar o código T-SQL que realmente ajuda a manter a fragmentação do índice com muito mais eficiência. Direi que não sei se o SQL Server melhorou em 2012 com a tarefa de índice. A solução mais conhecida para gerenciamento de fragmentação de índice pode ser encontrada aqui , Ola Hallengren.