Saltar al contenido
uencoder

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)
    Output
    Stored procedure invoked

    Precompiled

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

References