Update ch7.md

提交
This commit is contained in:
Zhaoyang 2021-12-19 17:59:36 +08:00 committed by GitHub
parent 48c792c996
commit 4aaf2d3aef
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

2
ch7.md
View File

@ -631,7 +631,7 @@ COMMIT;
存储过程在关系型数据库中已经存在了一段时间了自1999年以来它们一直是SQL标准SQL/PSM的一部分。出于各种原因它们的名声有点不太好
- 每个数据库厂商都有自己的存储过程语言Oracle有PL/SQLSQL Server有T-SQLPostgreSQL有PL/pgSQL等。这些语言并没有跟上通用编程语言的发展所以从今天的角度来看它们看起来相当丑陋和陈旧而且缺乏大多数编程语言中能找到的库的生态系统。
- 与应用服务器相比,在数据库中运行的代码管理困难,调试困难,版本控制和部署起来也更为尴尬,更难测试,更难和用于监控的指标收集系统相集成
- 在数据库中运行的代码难以管理:与应用服务器相比,它更难调试,更难以保持版本控制和部署,更难测试,并且难以集成到指标收集系统来进行监控
- 数据库通常比应用服务器对性能敏感的多因为单个数据库实例通常由许多应用服务器共享。数据库中一个写得不好的存储过程例如占用大量内存或CPU时间会比在应用服务器中相同的代码造成更多的麻烦。
但是这些问题都是可以克服的。现代的存储过程实现放弃了PL/SQL而是使用现有的通用编程语言VoltDB使用Java或GroovyDatomic使用Java或Clojure而Redis使用Lua。