viernes, 1 de diciembre de 2017

Procedimientos almacenados vs Funciones definidas por el usuario en Microsoft SQL Server

   

Las funciones definidas por el usuario de SQL Server y los procedimientos almacenados ofrecen una funcionalidad similar. Ambos le permiten crear paquetes de instrucciones SQL que se almacenan en el servidor para su uso futuro. Esto le ofrece un tremendo beneficio de eficiencia porque puede ahorrar tiempo de programación al:

  • Reutilizar código de un programa a otro, lo que reduce el tiempo de desarrollo del programa
  • Ocultar los detalles de SQL para que solo los desarrolladores de bases de datos se preocupen por SQL y los desarrolladores de aplicaciones solo se ocupen de idiomas de nivel superior
  • Mantenimiento centralizado, que le permite realizar cambios en la lógica de negocios en un solo lugar que afecta automáticamente a todas las aplicaciones dependientes
PROCEDIMIENTOS ALMACENADOS VS. FUNCIONES DEFINIDAS POR EL USUARIO

PROCEDIMIENTOS ALMACENADOS VS. FUNCIONES DEFINIDAS POR EL USUARIO

A primera vista, las funciones y los procedimientos almacenados parecen idénticos. Sin embargo, hay varias diferencias sutiles, pero importantes entre los dos:

  • Los procedimientos almacenados se llaman de forma independiente utilizando el comando EXEC, mientras que las funciones se llaman desde otra instrucción SQL. Las funciones definidas por el usuario generalmente implican menos codificación y contienen un código más simple que es más fácil de mantener que el código de procedimiento almacenado.
  • Las funciones definidas por el usuario son más fáciles de invocar que los procedimientos almacenados. Sin embargo, los procedimientos almacenados ofrecen un mejor rendimiento y una mayor productividad.
  • Los procedimientos almacenados evitan la codificación redundante que puede existir con las funciones definidas por el usuario.
  • Los procedimientos almacenados le permiten mejorar la seguridad de la aplicación al otorgar a los usuarios y las aplicaciones permiso para usar procedimientos almacenados, en lugar de permiso para acceder a las tablas subyacentes. Los procedimientos almacenados proporcionan la capacidad de restringir las acciones del usuario a un nivel mucho más granular que los permisos estándar de SQL Server. Por ejemplo, si tiene una tabla de inventario que los cajeros deben actualizar cada vez que se vende un artículo para disminuir el inventario de ese artículo en 1 unidad, puede otorgar permiso a los cajeros para usar un procedimiento almacenado disminueir_item, en lugar de permitirles realizar cambios arbitrarios a la tabla de inventario.
  • Las funciones siempre deben devolver un valor, ya sea un valor escalar o una tabla. Los procedimientos almacenados pueden devolver un valor escalar, un valor de tabla o nada en absoluto.
En general, los procedimientos almacenados son uno de los mayores tesoros disponibles para los desarrolladores de SQL Server, que los utilizan en gran medida en las bases de datos. Vale la pena la inversión de tiempo inicial por los beneficios de seguridad y eficiencia que proporcionan los procedimientos almacenados.




César GI

About César GI

Lo que me importa es poder enseñar lo poco que se, por que asi como yo aprendo leyendo gracias a las personas que comparten sus conocimiento yo tambien quiero ayudar a la comunidad en español aportando lo poco que he aprendido hasta el momento.