Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Problema noto?:la stored procedure di SQL Server 2005 non viene completata con un parametro

Prova a mascherare il parametro di input.

Immagino che la ricompilazione non funzioni a causa dell'impostazione predefinita specificata (EDIT :o parametro inviato alla prima chiamata) che viene annusato in fase di compilazione. Quindi, la ricompilazione non ha effetto.

Ho notato un'enorme differenza tra i piani stimati semplicemente modificando l'impostazione predefinita da, ad esempio, zero a NULL o non avendone uno.

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

Penso che questo articolo spiega...

MODIFICA:

Nuovo collegamento su parametri e piani di query . È ancora lo sniffing dei parametri indipendentemente dal fatto che sia specificato o meno un valore predefinito.

Una specie di articolo correlato su costanti e piani