Stored Procedure
存储过程是预编译并存储在数据库中的 SQL 程序,可被调用执行,减少网络往返与SQL 注入风险。
用途
将业务逻辑下推至数据库,减少网络往返与重复解析。
机制
用 SQL/PL 编写(PL/pgSQL、T-SQL),预编译并缓存执行计划。可接受参数、返回结果集或影响行数。在数据库内执行,减少网络往返。权限可控。但难调试、难版本管理、数据库耦合。
用例
- 复杂业务逻辑封装
- 批量数据处理
- 权限隔离的数据库操作
- 遗留系统逻辑
示例
- 输入
CALL transfer(account_a, account_b, 100)输出Stored procedure invokedPrecompiled
常见错误
- Over-pushing business logic down hurts maintainability
- Keep core logic in the app; use procedures only for data-intensive operations