Procedimientos almacenados
|
Procedimientos almacenados. Conjunto de comandos que pueden ser ejecutados directamente en el servidor, es decir, será ejecutado por el servidor de Base de Datos y no por el programa cliente que lo accede, permitiendo la ejecución de una acción o conjunto de acciones especificas.
Características
Se almacenan en la propia Base de Datos y constituyen un objeto más dentro de esta. Tienden a mejorar el rendimiento de los sistemas producto a que reducen en intercambio entre cliente y servidor. Los procedimientos almacenados son reutilizables, de manera que los usuarios mediante la aplicación cliente no necesitan relanzar los comandos individuales, sino que pueden llamar el procedimiento para ejecutarlo en el servidor tantas veces como sea necesario.
Utilidades
Los procedimientos almacenados son muy útiles sobre todo en arquitecturas cliente/servidor donde hay un servidor muy potente el cual se puede aprovechar para ejecutar procesos, consultas y actualizaciones complejas en la base de datos.
Posibles usos que pueden darse a estos objetos de la base de datos
Por ejemplo, si deseamos obtener un reporte complejo que incluya instrucciones condicionales y cálculos complejos con datos obtenidos de varias tablas, un procedimiento almacenado es nuestro mejor aliado. También se pueden ejecutar complejos procesos que a veces tardan horas cuando son ejecutados desde el cliente, ya que en tales casos la información debe pasar del servidor al cliente y viceversa.
Casi siempre las computadoras servidores son poderosas máquinas con mucha memoria, discos rápidos y uno o más procesadores también muy rápidos. Por lo tanto, al ejecutar los procesos mediante procedimientos almacenados estamos aprovechando toda esa capacidad de cómputo disponible en el hardware del servidor.
Algunos casos en que pueden resultar particularmente útiles
Cuando múltiples aplicaciones cliente se escriben en distintos lenguajes o funcionan en distintas plataformas, pero necesitan realizar la misma operación en la base de datos. Cuando la seguridad es muy importante. Los bancos, por ejemplo, usan procedimientos almacenados para todas las operaciones comunes.
Esto proporciona un entorno seguro y consistente, y los procedimientos pueden asegurar que cada operación se loguea apropiadamente. En tal entorno, las aplicaciones y los usuarios no obtendrían ningún acceso directo a las tablas de la base de datos, sólo pueden ejectuar algunos procedimientos almacenados.
Elementos de los procedimientos almacenados
Los procedimientos almacenados están compuestos por algunos de estos elementos:
- Parámetros de entrada (pueden esperar parámetros)
- Parámetros de salida (pueden devolver resultados)
- Declaración de variables (puede usarse variables en su cuerpo)
- Cuerpo del procedimiento (en su cuerpo se indican las acciones a realizar)
Tanto los parámetros de entrada como los de salida son opcionales. Podemos tener un procedimiento que no tenga parámetros de entrada, pero sí de salida y viceversa. Como todo buen programador sabe, los parámetros de entrada sirven para pasarle datos al procedimiento que necesita para llevar a cabo una acción determinada. Los parámetros de salida devuelven al programa cliente que ejecutó el procedimiento el resultado del mismo.
Sintaxis
Para crear un procedimiento almacenado debemos emplear la sentencia CREATE PROCEDURE.
Ejemplos
Llamando el procedimiento
En este caso veremos cómo llamarlo desde el lenguaje de programación C++, usando la tecnología ADO que trae C++Builder6:
Por ejemplo, si tenemos un procedimiento almacenado que elimina un registro según el id que se le pase, de esta manera, en el gestor SQL Server:
Los procedimientos almacenados permiten aprovechar los recursos del servidor, ahorrar tiempo creando consultas complejas desde el servidor y permiten interactuar con otros objetos, generadores, excepciones, tablas y vistas. Por lo tanto, es importante para todo desarrollador utilizarlos correctamente y saber todo lo que se puede hacer con ellos.