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

Problème connu ? :La procédure stockée SQL Server 2005 ne parvient pas à se terminer avec un paramètre

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