跳到主要内容
uencoder

Stored Procedure

存储过程是预编译并存储在数据库中的 SQL 程序,可被调用执行,减少网络往返与SQL 注入风险。

用途

将业务逻辑下推至数据库,减少网络往返与重复解析。

机制

用 SQL/PL 编写(PL/pgSQL、T-SQL),预编译并缓存执行计划。可接受参数、返回结果集或影响行数。在数据库内执行,减少网络往返。权限可控。但难调试、难版本管理、数据库耦合。

用例

  • 复杂业务逻辑封装
  • 批量数据处理
  • 权限隔离的数据库操作
  • 遗留系统逻辑

示例

  • 输入
    CALL transfer(account_a, account_b, 100)
    输出
    Stored procedure invoked

    Precompiled

常见错误

Over-pushing business logic down hurts maintainability
Keep core logic in the app; use procedures only for data-intensive operations

相关词条

参考链接