https://www.brentozar.com/pastetheplan/?id=Bkg8vBVzb
De que diabos é essa consulta? Eu pensei que poderia ter sido sp_BlitzIndex
ou sp_BlitzCache
mas procurei por eles e não vi nada parecido (procure por palavras-chave como IgnoreDuplicateKeys
ou spatial_indexes
). Quando eu procurei is_hypothetical
, consegui um sucesso em ambos sp_BlitzIndex
e no de Ola Hallengren IndexOptimize
, mas mais olhos me dizem que esses não são os culpados porque estão faltando tantas outras peças que esse plano desonesto tem (como o spatial
e xml
outras coisas).
Percebi isso porque ele é executado mais de 20 mil vezes por dia e mostra muito tempo de espera na minha ferramenta de monitoramento, mas, novamente, normalmente só mostra esperas entre 1h e 7h, o que é meio que nossa janela de manutenção... muito confuso neste momento, porém, porque estou usando a solução de Ola para indexação e o ocasional ad-hoc alter index all on some_table rebuild
.
Alguma ideia?
Agora que você sabe de onde vem essa consulta, o próximo passo a ser dado será baseado em se você acha que esse processo é crítico ou não.
Se eu estivesse no seu lugar, configuraria um acionador de login que não permitiria essa conexão e veria quem reclama ou qual ferramenta começa a errar. Apenas uma palavra de aviso, um gatilho de Logon mal definido pode tornar sua vida enlouquecedora, mas esperamos que este exemplo faça o truque. Modifiquei um exemplo de um gatilho restritivo diferente com base no encontrado neste post :
Se você suspeitar que a consulta oferece suporte a um processo crítico, eu começaria a entrar em contato com usuários que têm perfis no servidor de origem em questão e começaria a perguntar sobre os processos que eles usaram a partir daí.
Por fim, se você não conseguir identificar nenhuma informação útil dos usuários e não quiser ir tão longe a ponto de criar o gatilho de logon, eu o rastrearia pelo processo de eliminação. Comece fazendo login no servidor de onde esta consulta se origina e interrompa lentamente todos os serviços em execução (ou seja , services.msc ) que pareçam suspeitos, bem como revise/desative quaisquer trabalhos suspeitos do Agendador do Windows. Eventualmente, eu espero que você desligue o processo adequado e, eventualmente, descubra o que está acontecendo.
Espero que isso lhe dê algumas idéias sobre rotas a seguir. Boa sorte e espero que você descubra.
Mistério resolvido! Ao verificar as propriedades de login, máquina host e nome do programa da sessão, reduzimos. E era de fato uma tarefa agendada do Windows, chamando um aplicativo .Net.
Essa consulta de aparência particularmente desagradável é cortesia do MS SMO (SQL Management Objects), que é usado pelo ScriptDB (o aplicativo .Net) para ler o esquema para exportação para um repositório SVN. Especificamente, esta parte parece ser um tipo de comando "obter índice", embora eu não tenha mais paciência/desejo de mergulhar no código e desenhá-lo explicitamente. Enfim, agora sabemos!
PS: Obrigado João!