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

Stored Procedure che richiedono tempo nell'esecuzione

Sembra sniffing dei parametri.

Ecco una bella spiegazione:Sento un parametro!

Fondamentalmente, il server sql ha memorizzato nella cache il piano di esecuzione delle query per i parametri con cui è stato eseguito per la prima volta, quindi il piano non è ottimale per i nuovi valori che stai passando. Quando esegui direttamente la query, il piano viene generato in quel momento, ecco perché è veloce.

È possibile contrassegnare manualmente la procedura per la ricompilazione utilizzando sp_ricompilare oppure usa l'opzione With Recompile nella sua definizione in modo che venga compilata ad ogni esecuzione.