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

Noch einmal:Stored Procedure vs. TV-UDF

Ich glaube, Sie vergleichen Äpfel mit Birnen, und ich habe zumindest noch nie Diskussionen darüber gesehen. Es gibt Diskussionen darüber, ob Sie UDFs überhaupt verwenden sollten, und es gibt Diskussionen darüber, ob Sie gespeicherte Prozeduren oder Ad-hoc-SQL verwenden sollten.

Eine Inline-UDF ist etwas, das Sie in einer Abfrage verwenden können, und eine gespeicherte Prozedur ist etwas, das Sie ausführen können, und die meisten Ihrer Aufzählungspunkte sind eine Folge dieses Unterschieds.

Eine Inline-UDF ähnelt eher einer Ansicht als einer gespeicherten Prozedur. Eine parametrisierte Ansicht, die in Abfragen verwendet werden kann und wird manchmal verwendet, um Dinge zu beschleunigen .

Ich würde sehr gerne ein Szenario sehen, in dem eine Inline-UDF und eine gespeicherte Prozedur dasselbe tun und unterschiedliche Leistung haben.

Wenn die gespeicherte Prozedur niemals etwas schreibt, gibt es keinen Unterschied beim Sperren.

Ich weiß nichts über Leute, aber für mich dreht sich alles um die Diskussion über gespeicherte Prozeduren im Vergleich zu Ad-hoc-SQL. Ich bevorzuge gespeicherte Prozeduren, andere bevorzugen Ad-hoc. Wenn Sie stattdessen benutzerdefinierte Funktionen verwenden möchten von Prozeduren landet man im Ad-hoc-Sql-Lager.