Estou vendo 2 planos de consulta muito diferentes entre teste/prod para uma instrução UPDATE que faz parte de um procedimento armazenado. Obviamente, o tamanho da tabela difere (cerca de 10 milhões de linhas de diferença). Basicamente, a diferença está no Prod, estou vendo conjuntos de uma classificação cara seguida de uma atualização de índice (índice nc)
Considerando que em Test, não estou vendo esses conjuntos de operadores! Somente a atualização do índice clusterizado. Verifiquei se os índices NC existem etc. etc. Não consigo descobrir o que está acontecendo?! Já verifiquei índices, o sp, tentei RECOMPILE, valores diferentes para os param's etc. Deve estar faltando alguma coisa, até verifiquei restrições, tudo combina.
Alguma idéia de pensamentos? Eu nunca vi isso antes. O SQL acabou de pegar um plano de execução ruim!?
O UPDATE está estruturado da seguinte forma: UPDATE [nome da tabela] SET [coluna]=123 FROM ...
Os operadores extras no plano de Prod abaixo (menos a atualização do índice clusterizado):
Passe o mouse sobre a atualização do índice clusterizado, você verá uma lista dos outros índices envolvidos.
Se você usar o Plan Explorer, verá o número de índices não clusterizados anotados.
Veja Planos amplos vs. estreitos de Bart Duncan.