Stored Procedure
Un procedimiento almacenado es un programa SQL precompilado guardado en la base de datos que puede invocarse a demanda, reduciendo los viajes de red y el riesgo de inyección SQL.
Propósito
Bajar la lógica de negocio a la base de datos, reduciendo viajes de red y análisis repetidos.
Mecanismo
Escrito en SQL/PL (PL/pgSQL, T-SQL), precompilado con planes de ejecución en caché. Acepta parámetros y devuelve conjuntos de resultados o filas afectadas. Se ejecuta dentro de la base, reduciendo viajes de red, con privilegios controlables. Pero es difícil de depurar, versionar y desacoplar de la base de datos.
Casos de uso
- Encapsular lógica de negocio compleja
- Procesamiento de datos por lotes
- Operaciones de base de datos con privilegios aislados
- Lógica de sistemas heredados
Ejemplos
- entrada
CALL transfer(account_a, account_b, 100)OutputStored procedure invokedPrecompiled
Errores comunes
- Over-pushing business logic down hurts maintainability
- Keep core logic in the app; use procedures only for data-intensive operations
Términos relacionados
Trigger
Un trigger es código de base de datos que se ejecuta automáticamente cuando ocurren eventos específicos (INSERT/UPDATE/DELETE); se usa para auditoría, cascadas y restricciones. GLOSARIO
View
Una vista es una definición de consulta almacenada (una tabla virtual) que no guarda datos y se calcula dinámicamente en tiempo de consulta; se usa para simplificar consultas, aislar la seguridad y abstraer. GLOSARIO
SQL
SQL (Structured Query Language) es el lenguaje de consulta estándar de las bases de datos relacionales, que define y manipula datos de forma declarativa (DDL/DML/DQL/DCL). GLOSARIO