Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Seltsames Problem mit dem Ausführungsplan der SQL Server-Prozedur

Anscheinend haben Sie aufgrund von Parameter-Sniffing einen falsch zwischengespeicherten Abfrageplan.

Können Sie die gespeicherte Prozedur posten?

In SQL Server 2005 können Sie verwenden OPTIMIEREN FÜR Abfragehinweis für bevorzugte Werte von Parametern, um einige der Probleme zu beheben, die mit dem Parameter-Sniffing verbunden sind:

Obwohl SQL Server 2005 OPTIMIZE FOR UNKNOWN (eingeführt in SQL Server 2008) nicht unterstützt, wird das Parameter-Sniffing für einen bestimmten Parameter eliminiert:

OPTION (OPTIMIZE FOR (@myParam UNKNOWN))

Sie können den gleichen Effekt in SQL Server 2005 erzielen, indem Sie den Parameter in eine lokale Variable kopieren und dann die lokale Variable in der Abfrage verwenden.