Performance 哪种解决方案在oracle中的性能更好?

Performance 哪种解决方案在oracle中的性能更好?,performance,plsql,oracle11g,Performance,Plsql,Oracle11g,假设过程A计算了1000个数字,并希望过程B针对每个数字运行,然后过程B做一些事情。 解决方案一:程序AcallprocedureB1000次电话号码 解决方案二:程序A将数字保存在中间表格中,然后程序B读取数字 解决方案一的成本是调用过程B1000次,解决方案二的成本是插入1000个数字(一行中的每个数字)并读取(选择)1000个数字。 我想知道使用plsql哪个性能更好?对于您的示例,如果将这些作为选项,我会选择选项二。简单地说,我们不能循环调用另一个过程1000次,而写和读更有效。在维护方

假设过程
A
计算了1000个数字,并希望过程
B
针对每个数字运行,然后过程
B
做一些事情。
解决方案一:程序
A
callprocedure
B
1000次电话号码
解决方案二:程序
A
将数字保存在中间表格中,然后程序
B
读取数字
解决方案一的成本是调用过程
B
1000次,解决方案二的成本是插入1000个数字(一行中的每个数字)并读取(选择)1000个数字。
我想知道使用plsql哪个性能更好?

对于您的示例,如果将这些作为选项,我会选择选项二。简单地说,我们不能循环调用另一个过程1000次,而写和读更有效。在维护方面,过程B中的任何故障都不会保证在过程A上再次运行,您只需重新启动第二部分即可。

基本上,您正在考虑使用队列而不是直接调用。显然,前者有额外的开销。但是您的示例没有明确说明:A和B(以及B的几个实例)可以并行运行吗?与B相比,生成数字的成本是多少?A和B是否有“等待状态”,可以通过并行运行以某种方式加以利用?在“失败”的情况下,A和B应该如何表现?B的几个实例不能并行运行,我不理解您问题的第二部分。对于“中间表”,您是否考虑使用普通表、全局临时表或PL/SQL表(集合)?每个人的开销都会有很大的不同。我想用一个普通的table@jalalrasooly-这将是最昂贵的选择。我建议你调查一下。