首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >完全用PL/SQL编写大型批处理程序是愚蠢的吗?

完全用PL/SQL编写大型批处理程序是愚蠢的吗?
EN

Stack Overflow用户
提问于 2008-09-17 00:21:10
回答 11查看 5.1K关注 0票数 3

我正在开始一个程序的工作,这个程序可能最自然地被描述为数据库表上的一批计算,并且将每月执行一次。所有输入都在Oracle数据库表中,所有输出都将写入Oracle数据库表。该程序应该在未来许多年内保持可维护性。

将其实现为一系列存储过程似乎很简单,每个存储过程执行一个合理的转换,例如根据某些业务规则在部门之间分配成本。然后,我可以编写单元测试来检查每个转换的输出是否如我所期望的那样。

用PL/SQL来做这一切是不是一个坏主意?您是否更愿意使用典型的面向对象编程语言(如C# )进行繁重的批处理计算?使用以数据库为中心的编程语言,比如PL/SQL,不是更有表现力吗?

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2008-09-17 00:24:25

通常,我会说尽可能少地使用PL/SQL --它的可维护性通常要低得多--在我的最后一份工作中,我真的看到了使用它会变得多么混乱和困难。

但是,由于它是批处理,并且输入和输出都是DB,所以将逻辑放到PL/SQL中是很有意义的,以最大限度地减少“移动部分”。但是,如果是业务逻辑--或者系统的其他部分使用的组件--我会说不要这样做。

票数 3
EN

Stack Overflow用户

发布于 2008-09-18 12:12:35

您将描述以下需求

a)必须能够实现批处理b)结果必须是可维护的

我的回答是:

  1. PL/SQL就是为实现您所描述的功能而设计的。还需要注意的是,PL/SQL中有其他工具所不具备的效率。存储过程语言将处理放在数据旁边-这是批处理应该位于的位置。
  2. 用任何语言编写难以维护的代码都很容易。

话虽如此,您的实现将取决于可用的技能、适当的设计和对高质量流程的坚持。

为了提高效率,您的实现必须批量处理数据(批量选择和批量插入/更新)。OO方法的危险在于,它很容易导致设计逐行处理数据。这种类型的方法包含不必要的开销,并且与成批处理数据的设计相比,效率要低得多。

成功地使用这两种方法是可能的。

马修·巴特勒

票数 10
EN

Stack Overflow用户

发布于 2008-09-17 15:40:41

其他评论者需要注意的是,这个问题是关于PL/SQL的,而不是关于SQL的。显然,有些答案是关于SQL的,而不是PL/SQL。PL/SQL是一种功能完备的数据库语言,也是一种成熟的数据库语言。有一些缺点,但对于海报想要做的事情类型来说,它是非常好的。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/78626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档