sql >> Base de Datos >  >> RDS >> Sqlserver

Una vez más:procedimiento almacenado frente a TV-UDF

Creo que estás comparando manzanas y naranjas y al menos nunca he visto ninguna discusión sobre esto. Hay discusiones sobre si debería usar UDF y hay discusiones sobre si debería usar procedimientos almacenados o SQL ad hoc.

Un UDF en línea es algo que puede usar en una consulta y un procedimiento almacenado es algo que puede ejecutar y la mayoría de sus viñetas son consecuencia de esa diferencia.

Una UDF en línea se parece más a una vista que a un procedimiento almacenado. Una vista parametrizada que se puede usar en consultas y puede a veces se usa para acelerar las cosas .

Me gustaría mucho ver un escenario en el que un UDF en línea y un procedimiento almacenado hagan lo mismo y tengan un rendimiento diferente.

Si el procedimiento almacenado nunca escribe nada, no hay diferencia en el bloqueo.

No sé acerca de las personas, pero para mí se trata de la discusión sobre el procedimiento almacenado frente a sql ad hoc. Prefiero procedimientos almacenados, otros prefieren ad hoc. Si desea utilizar funciones definidas por el usuario en su lugar de procedimientos terminas en el campo de sql ad hoc.