Estou enfrentando um problema com o desempenho da consulta do SQL Server e espero obter alguns insights de todos vocês.
Declaração do problema:
Eu tenho uma consulta SQL que funciona bem (~6 ms) quando executada diretamente no SQL Server Management Studio (SSMS), mostrando uma "Busca de índice" no plano de execução. No entanto, quando a mesma consulta é executada em meu aplicativo Java usando JDBC, o plano de execução mostra uma "Varredura de índice" e a consulta leva muito mais tempo (~ 1 segundo) para ser executada.
O que eu tentei:
- Garantiu que as estatísticas estejam atualizadas nas tabelas e índices envolvidos.
- Comparamos as configurações de contexto de execução entre o SSMS e o aplicativo Java.
- Adicionado SQL ao produto armazenado e então funciona bem, faz busca de índice.
- ID do plano removido, cache limpo.
Pergunta:
- O que poderia estar causando essa discrepância no desempenho da consulta?
- Há alguma etapa de depuração que eu possa ter perdido?
Planeje quando isso será executado em Java: https://www.brentozar.com/pastetheplan/?id=SkWWezsya
Planeje quando isso será executado a partir do SSMS: https://www.brentozar.com/pastetheplan/?id=HJZPefokp
Quaisquer ideias ou sugestões serão muito apreciadas.