在一个过程中,我需要使用许多 if-else 条件来决定列的值。该脚本以
开头FOR rec IN (SELECT....) LOOP Begin
并决定rec子记录在每次迭代中可以获得的许多不同值。对于某些情况,可能只有 2 或 3 个变量赋值,并且某些情况包括运行单独的过程或执行 INSERT 操作。
从性能方面来看,当循环的 SELECT 语句产生许多记录时,这种方法是否是决策的最佳方法,或者可能有更好的替代方法?如果我在编写此程序时采用责任链模式会怎样?这种方法会提高性能还是只会让事情变得更糟?
问候。
最佳答案
如果可能的话,留在 SQL 中。 对于更大的卷,请避免使用“if”,因为您将在 PL/SQL 端进行序列化。 如果可能的话,最好将其作为 SELECT 中的 CASE 。 例如,在 SQL 并行化的情况下,可以由多个进程同时处理不同的行。
希望对你有帮助 伊戈尔
关于oracle - Oracle 过程中 if-else 过多,对性能有利还是不利?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10461111/