Essayez de masquer le paramètre d'entrée.
Je suppose que la recompilation ne fonctionne pas à cause de la valeur par défaut spécifiée (EDIT :ou paramètre envoyé au premier appel) reniflé au moment de la compilation. Ainsi, la recompilation n'a aucun effet.
J'ai vu une énorme différence entre les plans estimés simplement en changeant la valeur par défaut de zéro à NULL, ou en n'en ayant pas.
ALTER PROCEDURE [usp_debug_mightwork]
@DATA_DT_ID AS int = 20081130
AS
BEGIN
DECLARE @IDATA_DT_ID AS int
SET @IDATA_DT_ID = @DATA_DT_ID
-- Stuff here that depends on IDATA_DT_ID
END
Je pense que cet article explique...
MODIFIER :
Nouveau lien sur les plans et paramètres de requête . Il s'agit toujours de renifler les paramètres, qu'une valeur par défaut soit spécifiée ou non.
Type d'article connexe sur les constantes et les plans