Executamos janelas de manutenção semanalmente e mensalmente. Algumas de nossas janelas de manutenção estão online e a última coisa que queremos são nossos scripts para bloquear consultas ativas de nossos aplicativos.
Existe uma maneira de definir a prioridade de uma consulta para que ela não faça com que outras consultas sejam bloqueadas por mais de X segundos?
Exemplo:
Eu sei que existe uma funcionalidade semelhante com impasses (definir vítima de impasse como baixo).
Obrigado!
A Microsoft introduziu a nova opção de espera de bloqueio de baixa prioridade para reconstruções de índice no SQL Server 2014. Não tenho certeza de qual versão do SQL Server você está executando.
Reconstrução do índice usando 'espera de bloqueio de baixa prioridade':
Confira o excelente artigo de Paul Randal aqui Espera de baixa prioridade e índice de teste reconstruído com espera de baixa prioridade por Kendra Little para uma explicação clara.
Isso é específico para a manutenção do índice, presumo que seus planos de manutenção incluam verificações de integridade e outras coisas também.
Uma opção seria escrever algum código TSQL para monitorar o bloqueio e criar e agendar um trabalho do agente SQL para eliminar automaticamente a 'sessão de baixa prioridade' com base no texto SQL em execução.
Se você estiver enfrentando problemas causados por bloqueios, provavelmente poderá diminuir o valor de prioridade de bloqueio para ver se isso ajuda.
Dependendo do tipo de contenção de recursos, você também pode tentar limitar os recursos para logins específicos usando o Resource Governor .
Se você estiver usando planos de manutenção personalizados, provavelmente precisará examinar e começar a usar a solução de manutenção de Ola Hallengren .