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

Warum gibt es Leistungsunterschiede, wenn eine SQL-Funktion von der .Net-App aufgerufen wird, und warum derselbe Aufruf in Management Studio erfolgt?

Ich hatte ein ähnliches Problem mit gespeicherten Prozeduren, und für mich stellte sich heraus, dass es sich um "Parameter-Sniffing" handelte. Googlen Sie das und sehen Sie, ob es Ihr Problem löst. Für mich war es eine dramatische Beschleunigung, nachdem ich es behoben hatte.

In meinem Fall habe ich es behoben, indem ich für jeden übergebenen Parameter eine lokale Variable deklariert und dann die lokale Variable diesem Parameterwert zugewiesen habe, und der Rest des Prozesses hat die lokalen Variablen für die Verarbeitung verwendet ... aus welchem ​​​​Grund auch immer, dies besiegte das Parameter-Sniffing.