2010-06-25 30 views
6

¿Cuáles son las diferencias entre los procedimientos almacenados y las funciones.Procedimientos almacenados y funciones

Cuando haya más parámetros de entrada y salida, iré para el procedimiento almacenado. Si es solo uno, iré a funciones.

Además de eso, ¿hay algún problema de rendimiento si utilizo más procedimientos almacenados? Estoy preocupado porque tengo cerca de 50 procedimientos almacenados en mi proyecto.

Cómo difieren conceptualmente.

¡Gracias de antemano!

Editado: -

Cuando i ejecutado un cálculo en procedimiento almacenado y en las funciones, he encontrado que en los procedimientos almacenados se está llevando a 0,15 seg, mientras que en la función que toma 0.45sec.

Sorprendentemente, las funciones llevan más tiempo que los procedimientos almacenados. Puede ser que las funciones valen por su reutilización.

Las funciones en línea se ejecutan más rápido que los procedimientos simplificados. Creo que esto se debe a que las funciones de selección múltiple no pueden usar elementos estáticos, lo que las ralentiza, pero las funciones de valores de tabla en línea pueden usar estadísticas.

+1

Cuando ejecutó sus mediciones de rendimiento, ¿qué aprendió? Actualice la pregunta con los resultados reales que realmente comparó una función y un procedimiento. –

+0

Como tengo muchos procedimientos almacenados, me gustaría comprobar, si hay algún problema de rendimiento para tener tantos? la pregunta está editada. – satya

+0

Cuando creó una función EJEMPLO y un procedimiento almacenado EJEMPLO y ejecutó estos dos EJEMPLOS 1000 veces para ver la diferencia en el rendimiento, ¿qué aprendió? Reescribir los 50 en ambos formularios es * no * útil. Ejecutar dos EJEMPLOS es muy, muy útil. –

Respuesta

2

diferencia entre el procedimiento y las funciones de SQL Server almacenado ...

http://www.dotnetspider.com/resources/18920-Difference-between-Stored-Procedure-Functions.aspx

diferencia entre los procedimientos almacenados y funciones definidas por el usuario [UDF]

http://www.go4expert.com/forums/showthread.php?t=329

procedimientos almacenados vs. funciones

http://searchsqlserver.techtarget.com/tip/Stored-procedures-vs-functions

¿Cuáles son las diferencias entre los procedimientos y funciones almacenadas en ...

http://www.allinterview.com/showanswers/28431.html

diferencia entre Procedimiento almacenado y funciones

http://www.sqlservercentral.com/Forums/Topic416974-8-1.aspx

1

para decidir entre usar uno de los dos, tenga en cuenta la diferencia fundamental entre ellos: los procedimientos almacenados están diseñados para devolver su salida a la aplicación. Una UDF devuelve variables de tabla, mientras que un SPROC no puede devolver una variable de tabla, aunque puede crear una tabla. Otra diferencia significativa entre ellos es que las UDF no pueden cambiar el entorno del servidor o el entorno de su sistema operativo, mientras que un SPROC puede hacerlo. Operacionalmente, cuando T-SQL encuentra un error, la función se detiene, mientras que T-SQL ignorará un error en un SPROC y pasará a la siguiente declaración en su código (siempre que haya incluido el soporte de manejo de errores). También encontrará que aunque un SPROC se puede usar en una cláusula XML FOR, no se puede usar un UDF.

Si tiene una operación como una consulta con una cláusula FROM que requiere que un conjunto de filas se extraiga de una tabla o un conjunto de tablas, entonces una función será su elección adecuada. Sin embargo, cuando quiera usar ese mismo conjunto de filas en su aplicación, la mejor opción sería un procedimiento almacenado.

Existe un gran debate sobre los beneficios de rendimiento de las UDF frente a las SPROC. Puede sentirse tentado a creer que los procedimientos almacenados agregan más sobrecarga a su servidor que un UDF. Dependiendo de cómo escriba su código y el tipo de datos que está procesando, este podría no ser el caso. Siempre es una buena idea enviar mensajes de texto en operaciones importantes o que requieren mucho tiempo probando ambos tipos de métodos.

Cuestiones relacionadas