sql >> Database >  >> RDS >> Sqlserver

Bekend probleem?:SQL Server 2005 opgeslagen procedure kan niet worden voltooid met een parameter

Probeer de invoerparameter te maskeren.

Ik denk dat het opnieuw compileren niet werkt vanwege de opgegeven standaard (EDIT :Of parameter verzonden bij eerste oproep) wordt gesnoven tijdens het compileren. Hercompileren heeft dus geen effect.

Ik heb een enorm verschil gezien tussen geschatte plannen door simpelweg de standaardwaarde te wijzigen van bijvoorbeeld nul in NULL, of er geen te hebben.

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

Ik denk dat dit artikel legt uit...

BEWERKEN:

Nieuwe link over queryplannen en parameters . Het is nog steeds parametersnuffelen of een standaard is opgegeven of niet.

Een soort verwant artikel over constanten en plannen



  1. Laravel met Docker-probleem bij het verbinden van MySQL

  2. SQL Loader, verzadiging triggeren?

  3. VERLENEN specifieke rol ALTER toegang tot specifieke tabel

  4. SQL Server automatische update datetimestamp veld