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

Strano problema con il piano di esecuzione della procedura di SQL Server

Sembra che tu stia riscontrando un piano di query memorizzato nella cache in modo errato a causa dello sniffing dei parametri.

Puoi pubblicare la procedura memorizzata?

In SQL Server 2005 è possibile utilizzare OTTIMIZZA PER suggerimento di query per i valori preferiti dei parametri per risolvere alcuni dei problemi associati allo sniffing dei parametri:

Sebbene SQL Server 2005 non supporti OTTIMIZZA PER SCONOSCIUTO (introdotto in SQL Server 2008), che eliminerà lo sniffing dei parametri per un determinato parametro:

OPTION (OPTIMIZE FOR (@myParam UNKNOWN))

È possibile ottenere lo stesso effetto in SQL Server 2005 copiando il parametro in una variabile locale e quindi utilizzando la variabile locale nella query.