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

La stored procedure si blocca apparentemente senza spiegazioni

Penso che ciò sia correlato allo sniffing dei parametri e alla necessità di parametrizzare i parametri di input in parametri locali all'interno dell'SP. L'aggiunta con la ricompilazione provoca la ricreazione del piano di esecuzione ed elimina gran parte dei vantaggi di avere un SP. Abbiamo utilizzato With Recompile su molti report nel tentativo di eliminare questo problema di blocco e occasionalmente si è verificato il blocco di SP che potrebbero essere stati correlati ad altri blocchi e/o transazioni che accedono alle stesse tabelle contemporaneamente. Vedi questo link per maggiori dettagliParameter Sniffing (o spoofing ) in SQL Server e cambia i tuoi SP con i seguenti per risolvere questo problema:

CREATE PROCEDURE [dbo].[SPNAME] @p1 int, @p2 intAS

DICHIARA @localp1 int, @localp2 int

SET @[email protected] SET @[email protected]