存储过程真的是洪水猛兽吗?

17 小时 38 分钟前
 liuidetmks

很多开发者一提到 SQL 就“谈此色变”,觉得难以调试、难以定位 bug
最后就是一句话,就是这个东西碰不得,是邪教


存储过程这个东西存在这么久,不可能一无是处吧

有没有可能,像 TypeScript 转译为 JavaScript 一样,有一种高级语言可以:

9640 次点击
所在节点    数据库
109 条回复
cxe2v
17 小时 34 分钟前
出来多少年的 ORM 框架不就是你要的东西
lpxxn
17 小时 34 分钟前
100%洪水猛兽
zhanlanhuizhang
17 小时 30 分钟前
没有吧,公司里面所有的系统都用了。
Debug1998
17 小时 30 分钟前
我维护过离职人员写的存储过程,这个东西的使用,我有两个问题:1. 执行出了问题,只能写表记录异常、错误信息? 2. 存储过程和 Java 等语言实现相同的功能,在代码上存储过程是否更不易理解。
zjsxwc
17 小时 29 分钟前

就是全球最大的 ERP 软件,德国思爱普 SAP 的 abap 语言。

abap 就是进阶版本的 SQL 语言,这个 sql 语言不但能操作数据库,还能用来描述用户交互界面。
MuSeCanYang
17 小时 27 分钟前
存储过程的逻辑,在我们这占了最起码 30%
稍微复杂一点的数据交互,不用存储过程,慢的要死。
spritecn
17 小时 25 分钟前
甚至 xml 都是洪水猛兽,超过 5 行根本看不懂,存储的语法和 bat,shell 有得一比,一般人看不懂,不像 java,python 那么直接
felixcode
17 小时 24 分钟前
有学习门槛的东西,都有可能被找借口躲避
xiangbohua
17 小时 23 分钟前
不会用不好管理而已,实际上用的好的话,性能很不错
cheng6563
17 小时 22 分钟前
当项目管理起来还行,不管理直接上数据库随便改那就是洪水猛兽。
sanmaozhao
17 小时 19 分钟前
存储过程还有一个问题:可移植性差
如果需要支持不同的数据库,一般就没法用存储过程了
msg7086
17 小时 11 分钟前
不同的东西有不同的使用场景啊。
说是邪教的,无非是因为他们的使用场景不适合用存储过程罢了。
给你一台 1TB 内存 128 核心的服务器跑 Oracle 数据库,用户数量就 1 万人,业务逻辑常年不多变,你告诉我为啥不用存储过程。
iugo
17 小时 8 分钟前
如果存储过程和后端的业务逻辑是两班人马写, 并且 存储过程 可以静态分析, 那么 存储过程 才可以接受.

性能问题, 更应该用别的方式优化, 比如调整结构, 异步, 分布式, 缓存等.
SupperHobby
17 小时 7 分钟前
银行都是存储过程
forbreak
17 小时 6 分钟前
个人觉得存储过程的问题,主要还是团队人数太多的时候,管理不善带来的。 新旧人员交接,互相关联的业务多个存储过程和代码里面的业务交叉影响等。 存储过程本身倒是没什么大问题。
sagaxu
17 小时 4 分钟前
哪个高级语言没有操作 DB 的 DSL ?完全满足你这几个要求。

谈 SQL 色变,那是因为不熟悉,系统性学过 SQL 的开发者很少,给存储过程加过断点的更少。
eraserrain
17 小时 3 分钟前
你好是的,debug 和版本管理简直灾难,虽然有时候设一些 sp 和 trigger 还蛮好用的
lujiaxing
17 小时 2 分钟前
看情况. 对于互联网企业来说, 存储过程本身就是没必要的. 互联网企业本身业务非常简单, 几乎无外乎 CURD.
但是对于 SAP, 用友, 久其, 任我行那些 ERP 系统, 以及四通一达的那些 WMS 系统来说, 存储过程就是解决复杂需求的利器. 哦对, 也包括电信运营商与银行. 它们的存储过程更加复杂, 但存储过程对他们来说也往往是必然的选择.


业务逻辑越是复杂, 存储过程的就越是有存在的必要.

哦对, 铁路的 TRS 后面的业务逻辑全都是存储过程.
totoro52
17 小时 1 分钟前
等你维护到几百个储存过程的古老项目就知道了,每天写代码都感觉自己在学习黑魔法
xdzhang
16 小时 56 分钟前
我这里还有一套系统全是视图存储过程触发器,其中有些看都不想看。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://yangjunhui.monster/t/1130319

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX