2

在一个过程中,我需要使用许多 if-else 条件来确定列的值。脚本以

FOR rec IN (SELECT....) 循环开始

并决定rec子记录在每次迭代中可以获得的许多不同值。在某些情况下,可能只有 2 或 3 个变量赋值,而某些情况包括运行单独的过程或执行 INSERT 操作。

如果循环的 SELECT 语句的结果有很多记录,这种方法是从性能方面进行决策的最佳方法,还是可能有更好的选择?如果我在编写此程序时采用责任链模式怎么办?这种方法会提高性能还是只会让事情变得更糟?

问候。

4

1 回答 1

3

如果可能,请留在 SQL 中。对于更大的卷,请避免使用“if”,因为您将在 PL/SQL 端进行序列化。如果可能的话,最好把它作为你的 SELECT 里面的 CASE 。例如,在 SQL 并行化的情况下,它可以由多个进程同时处理不同的行。

希望它有帮助,伊戈尔

于 2012-05-05T17:11:56.073 回答