oracle - Oracle 过程中 if-else 过多,对性能有利还是不利?

标签 oracle procedure database-performance chain-of-responsibility

在一个过程中,我需要使用许多 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/

相关文章:

oracle - 创建 Oracle PL/SQL 存储过程

sql - 仅使用 where 条件删除重复项

sql - 在没有最后修改列的情况下查询最后修改时间

database - 如何在 Oracle 11g 中执行存储过程

mysql - MySQL 中非常慢的查询

sql - 如何在 SQL 中将天数与时间一起添加到日期列

mysql - 在同一查询中选择并更新

node.js - 如何使用 RethinkDB 耗尽机器资源?

database-performance - 了解 nodetool cfstats 中的 "Number of keys"

postgresql - 从 Asp.Net C# 应用程序执行 PostgreSQL 存储过程时出现 42809 错误