Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Problème étrange avec le plan d'exécution de la procédure SQL Server

Il semble que vous rencontriez un plan de requête incorrectement mis en cache en raison de la détection de paramètres.

Pouvez-vous publier la procédure stockée ?

Dans SQL Server 2005, vous pouvez utiliser OPTIMISER POUR indice de requête pour les valeurs préférées des paramètres afin de remédier à certains des problèmes associés au reniflage de paramètres :

Bien que SQL Server 2005 ne supporte pas OPTIMIZE FOR UNKNOWN (introduit dans SQL Server 2008) qui éliminera le reniflage de paramètre pour un paramètre donné :

OPTION (OPTIMIZE FOR (@myParam UNKNOWN))

Vous pouvez obtenir le même effet dans SQL Server 2005 en copiant le paramètre dans une variable locale, puis en utilisant la variable locale dans la requête.