Un procedimiento almacenado es un tipo de código en SQL que se puede almacenar para su uso posterior y se puede usar muchas veces. Entonces, cada vez que necesite ejecutar la consulta, en lugar de llamarla, simplemente puede llamar al procedimiento almacenado. También puede pasar parámetros a un procedimiento almacenado, de modo que el procedimiento almacenado pueda actuar en función de los valores de los parámetros que se pasan.
Sintaxis:
CREATE PROCEDURE procedure_name AS sql_statement GO;
Para ejecutar un procedimiento almacenado –
EXEC procedure_name;
Ejemplo :
CREATE PROCEDURE SelectAllGeeks AS SELECT * FROM Geeks GO;
Ventajas:
Las principales ventajas del procedimiento almacenado se dan a continuación:
- Mejor rendimiento:
las llamadas a procedimientos son rápidas y eficientes, ya que los procedimientos almacenados se compilan una vez y se almacenan en formato ejecutable. Por lo tanto, la respuesta es rápida. El código ejecutable se almacena en caché automáticamente, por lo que reduce los requisitos de memoria. - Mayor productividad:
dado que la misma pieza de código se usa una y otra vez, se obtiene una mayor productividad. - Facilidad de uso:
para crear un procedimiento almacenado, se puede utilizar cualquier entorno de desarrollo integrado (IDE) de Java. Luego, se pueden implementar en cualquier nivel de arquitectura de red. - Escalabilidad:
los procedimientos almacenados aumentan la escalabilidad al aislar el procesamiento de aplicaciones en el servidor. - Capacidad de mantenimiento:
mantener un procedimiento en un servidor es mucho más fácil que mantener copias en varias máquinas cliente, esto se debe a que los scripts están en una ubicación. - Seguridad:
el acceso a los datos de Oracle se puede restringir al permitir que los usuarios manipulen los datos solo a través de procedimientos almacenados que se ejecutan con los privilegios de su definidor.
Desventajas:
las principales desventajas de los procedimientos almacenados se indican a continuación:
- Pruebas:
la prueba de una lógica que está encapsulada dentro de un procedimiento almacenado es muy difícil. Cualquier error de datos en el manejo de procedimientos almacenados no se genera hasta el tiempo de ejecución. - Depuración:
según la tecnología de la base de datos, la depuración de los procedimientos almacenados será muy difícil o no será posible en absoluto. Algunas bases de datos relacionales como SQL Server tienen algunas capacidades de depuración. - Control de versiones:
el procedimiento almacenado no admite el control de versiones. - Costo:
se requiere un desarrollador adicional en forma de DBA para acceder al SQL y escribir un mejor procedimiento almacenado. Esto incurrirá automáticamente en un costo adicional. - Portabilidad:
los procedimientos almacenados complejos no siempre se transferirán a versiones actualizadas de la misma base de datos. Esto es especialmente cierto en el caso de pasar de un tipo de base de datos (Oracle) a otro tipo de base de datos (MS SQL Server).
Ventajas | Desventajas |
---|---|
Es mas rapido. | Es difícil de depurar. |
Está precompilado. | Necesita desarrollador experto, ya que es difícil escribir código. |
Reduce el tráfico de red. | Depende de la base de datos. |
es reutilizable | No es portátil. |
Su seguridad es alta. | Es caro. |