存储过程真的很难么?

2019-06-30 15:48:39 +08:00
 v2overflow

新领导要求不要用存储过程,说因为存储过程太复杂,后续的人不好接手... 要求所有数据的处理都读出来用 java 程序处理,比如复制一张表:先 select 到对象中,再把这个对象 insert 到目标表...和他说 CTAS,他说太复杂,和他说效率,他说可以加机器...

如果说过于依赖存储过程会对后续数据库迁移有影响我觉得是有道理的,但他貌似根本没想到这一层,而且既然用数据库了,不能用 SQL 实在不能理解

14369 次点击
所在节点    程序员
126 条回复
yidinghe
2019-06-30 17:45:34 +08:00
这个也太绝对了,我这边就是直接 insert...select 一条语句搞定,复杂吗。但如果是存储过程确实能不用就不用,我们新系统数据迁移,虽然 dba 给了迁移的存储过程,但我们决定还是用代码来做,为什么,因为迁移完了还要有很多校验,dba 要做这个的话就必须学习每张表的业务逻辑。这种事 dba 是不干的。
jingyulong
2019-06-30 17:54:31 +08:00
有 DBA 的时候,就可以用存储过程了。有些特别复杂的业务,使用 SQL 效率会很高,看实际业务了。
loading
2019-06-30 19:25:10 +08:00
存储过程写的时候不难,读?基本不可能!
wc951
2019-06-30 19:28:10 +08:00
还有一点就是关系型数据库单打天下的时代过去了
nidaye999
2019-06-30 19:43:38 +08:00
看来楼主还在坚持自己的想法。做事要考虑周全,不要只想自己。参考其他人的意见是不错的选择。
fox0001
2019-06-30 19:46:34 +08:00
一般不能用存储过程的都不用。缺点正如 @metrxqin #15 所言。

对于原有的存储过程,目前的维护是:
1 )用程序重新实现
2 )不能重新实现的,全部导出 SQL 文本,做版本控制,并且加上注释。(基本没有这种情况了)

剩下视图也是导出 SQL 文本做版本控制。
applehater
2019-06-30 19:50:11 +08:00
不好调试,没执行记录,容易留 BUG 还不好确定,不能咬定是别人的问题。我现在就遇到这样的问题。
zander1024
2019-06-30 20:12:09 +08:00
有好的 dba 的时候可以用存储,但是不保证好的 dba 一直在你公司啊... 真的,程序找问题比存储找快多了。
zclHIT
2019-06-30 20:32:48 +08:00
歪个楼:
要么。。。
要么。。。
要么。。。
对吧?
ty89
2019-06-30 20:36:35 +08:00
当你只有一把锤子的时候,你看所有东西都像钉子
falcon05
2019-06-30 20:48:29 +08:00
可别用这玩意,老糟心了
zr8657
2019-06-30 21:09:10 +08:00
我觉得 30 楼说的入木三分
springz
2019-06-30 21:24:53 +08:00
特定行业吧,如果是做 ERP 或者特定行业,存储过程好用。
springz
2019-06-30 21:25:24 +08:00
并不是每个产品都会面临频繁变化的需求的
springz
2019-06-30 21:30:55 +08:00
当数据越来越大,面临分库分表的时候,就知道什么存储过程,视图,触发器等等这些上古时代的垃圾会变成屎让你一点点吃下去。存储过程是最大最硬的屎。
springz
2019-06-30 21:37:21 +08:00
@v2overflow V2EX 上很少传统企业程序员,大家都是被数据库坑过的人,思路可能不同。为了最大的扩展性,大多数情况下别说存储过程了,关联查询建议最好不要使用的。
springz
2019-06-30 21:40:45 +08:00
建议看下 阿里巴巴开发手册 数据库部分
NeinChn
2019-06-30 21:43:10 +08:00
还有类似的关联问题:
“为什么外键这么好用领导不让用”
“为什么书里教的范式这么好用领导还要搞一堆冗余字段”
“为什么 group by 这么好用领导不允许在线上直接用,只允许在统计从库 /Hive 上用”
要是业务就那么小那么简单,随便用,要是业务还有增长的机会,那就还是别用了
redtea
2019-06-30 21:44:17 +08:00
存储过程是毒药
xaplux
2019-06-30 21:44:29 +08:00
不要写存储过程 不要写存储过程 不要写存储过程!
禁止使用存储过程,存储过程难以调试和扩展,更没有移植性。

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

https://www.v2ex.com/t/578730

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

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

© 2021 V2EX