Prøv at maskere inputparameteren.
Jeg gætter på, at omkompileringen ikke virker på grund af den angivne standard (EDIT :Eller parameter sendt ved første opkald) bliver sniffet på kompileringstidspunktet. Så genkompilering har ingen effekt.
Jeg har set en enorm forskel mellem estimerede planer blot ved at ændre standarden fra f.eks. nul til NULL eller ikke have en.
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
Jeg tror, at denne artikel forklarer...
EDIT:
Nyt link til forespørgselsplaner og -parametre . Det er stadig parametersniffing, om en standard er angivet eller ej.
Slags relateret artikel om konstanter og planer