Você precisará perdoar minha ingenuidade, pois não sou um DBA, mas meu entendimento é que, com o tempo, as estatísticas de um banco de dados são alteradas e um procedimento armazenado deve ser recompilado para manter o plano de consulta atualizado com as estatísticas mais recentes.
Supondo que eu tenha um procedimento armazenado no meu banco de dados que seja recompilado com as estatísticas mais recentes em algum intervalo regular, quais são as implicações de alinhar o procedimento armazenado no código e envolvê-lo em uma sp_executesql
instrução? Perco a atualização do plano de consulta que costumava acontecer como parte da recompilação do procedimento?
Se houver mais alguma coisa (além de permissões) que eu precise considerar antes de fazer essa alteração, agradeceria suas idéias.
Eu li isso no MSDN:
A capacidade do otimizador de consulta do SQL Server para combinar a nova seqüência de caracteres Transact-SQL com um plano de execução existente é prejudicada pelas constantes alterações dos valores dos parâmetros no texto da seqüência, especialmente em instruções Transact-SQL complexas.
Portanto, supondo que o procedimento armazenado que estou tentando incorporar e envolver de sp_executesql
fato contenha alguns parâmetros, isso significa que, embora meu plano de execução seja armazenado em cache, estou dificultando a localização e a reutilização do SQL Server?
fonte