Procedimientos Almacenados Segundo Roger Ramirez Shupingahua
ALMACENADOS LosPROCEDIMIENTOS procedimientos almacenados son una de las herramientas más potentes y versátiles de los manejadores de SQL y utilizándolos adecuadamente, una buena manera de aprovechar al máximo las posibilidades de éste SGBD y obtener un rendimiento óptimo en nuestras aplicaciones Un procedimiento almacenado es un pequeño programa almacenado en la base de datos que puede ser ejecutado en cualquier momento.
PROCEDIMIENTOS ALMACENADOS Un procedimiento tiene un nombre, un conjunto de parámetros y un bloque de código. En Transact SQL los procedimientos almacenados pueden devolver valores o conjuntos de resultados.
Para crear un procedimiento almacenado debemos emplear la sentencia CREATE PROCEDURE. CREATE PROCEDURE <nombre_procedure> [@param1
, ...] AS -- Sentencias del procedure
¿Para qué utilizar procedimientos almacenados? Los procedimientos almacenados ESTÁN compilados. Traducción básica: El conjunto de instrucciones que utiliza el equipo para llevar a cabo la operación solicitada se divide hasta el menor nivel posible disponible en la plataforma en la que está trabajando. (Punto crucial: la velocidad.) La alternativa sería crear consultas y tareas de mantenimiento de bases de datos que se ejecutaran cada vez que se enviara la petición, lo que exigiría de su SQL Server mucho más trabajo del necesario.
PROCEDIMIENTOS ALMACENADOS
Para modificar un procedimiento almacenado debemos emplear la sentencia ALTER PROCEDURE. ALTER PROCEDURE <nombre_procedure> [@param1
, ...]AS -- Sentencias del procedure
VENTAJAS
Rendimiento: al ser ejecutados por el motor de base de datos ofrecen un rendimiento inmejorable ya que no es necesario transportar datos a ninguna parte. Cualquier proceso externo tiene una penalidad de tiempo adicional dada por el transporte de datos. Los procedimientos almacenados son analizados y optimizados en el momento de su creación, a diferencia de las instrucciones Transact-SQL, que deben ser analizadas, compiladas y optimizadas cada vez que son enviadas por el cliente. Potencia: el lenguaje para procedimientos almacenados es muy potente. Permiten ejecutar operaciones complejas en pocos pasos ya que poseen un conjunto de instrucciones avanzadas.
VENTAJAS Centralización: Al formar parte de la base de datos los procedimientos almacenados están en un lugar centralizado y pueden ser ejecutados por cualquier aplicación que tenga a la misma. Reducción del tráfico de red: Una sentencia formada por decenas, cientos o incluso miles de líneas de código Transact-SQL puede escribirse como un procedimiento almacenado en el servidor y ejecutarse simplemente mediante el nombre de dicho procedimiento, en lugar de enviar todas las líneas de código por la red desde el cliente hasta el servidor(ésta reducción del tráfico de red será especialmente significativa en redes no muy veloces, como por ejemplo, algunas redes WAN).
Seguridad: Los VENTAJAS procedimientos almacenados facilitan algunas tareas de istración de seguridad y asignación de permisos. Por ejemplo, se puede conceder permiso a un para ejecutar un determinado procedimiento almacenado, aunque el no disponga de los permisos necesarios sobre los objetos afectados por las acciones individuales de dicho procedimiento. Encapsulación: Los procedimientos almacenados encapsulan gran parte de la lógica de los datos a las aplicaciones que los utilizan. Por ejemplo, una aplicación puede llamar al procedimiento almacenado spEliminarProveedor sin conocer cómo funciona internamente éste proceso (transacciones e instrucciones Transact-SQL utilizadas, tablas
DESVENTAJAS Esclavitud: Los procedimientos almacenados nos esclavizan al motor de base de datos. Una base de datos con muchos procedimientos almacenados es prácticamente imposible de migrar a otro motor. Otros: Reemplazando o ampliando la funcionalidad de extensos y complejos procedimientos almacenados, especialmente los que realizan cálculos matemáticos complejos o fórmulas de negocio complejas. Procedimientos que necesitan acceder a algunas estructuras de datos externas que no tienen una interface tradicional de a datos. Realizar algoritmos complejos. Realizar complejos cálculos de ingeniería.