Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 在每次验证中重复调用函数与执行IF_Oracle_Validation_Plsql_Oracle11g - Fatal编程技术网

Oracle 在每次验证中重复调用函数与执行IF

Oracle 在每次验证中重复调用函数与执行IF,oracle,validation,plsql,oracle11g,Oracle,Validation,Plsql,Oracle11g,我在Oracle11gR2中创建了两个函数。它们根据我的测试条件返回布尔值。每当我检查该条件的有效性时,我都会使用它。然而,我的一些同事建议我应该使用if语句进行比较,而不是调用函数,因为这会导致更多的上下文切换,降低系统的整体效率 所以我想知道哪种方法可以提高性能 调用函数并使用该语句进行验证,或者硬编码IF语句并执行相关验证?如果您保证不会多次使用IF语句(现在和将来),那么硬编码就足够了 但是,如果您不能保证这一点(几乎总是这样),那么调用函数的开销可以忽略不计。特别是如果您将其与对其进行

我在Oracle11gR2中创建了两个函数。它们根据我的测试条件返回布尔值。每当我检查该条件的有效性时,我都会使用它。然而,我的一些同事建议我应该使用if语句进行比较,而不是调用函数,因为这会导致更多的上下文切换,降低系统的整体效率

所以我想知道哪种方法可以提高性能


调用函数并使用该语句进行验证,或者硬编码IF语句并执行相关验证?

如果您保证不会多次使用IF语句(现在和将来),那么硬编码就足够了

但是,如果您不能保证这一点(几乎总是这样),那么调用函数的开销可以忽略不计。特别是如果您将其与对其进行任何更改所需的工作量进行比较,而不是更改一个功能


Steven Feuerstein的这篇文章很好地解释了硬编码的含义,如果您保证不会多次使用if语句(现在和将来),那么硬编码就足够了

但是,如果您不能保证这一点(几乎总是这样),那么调用函数的开销可以忽略不计。特别是如果您将其与对其进行任何更改所需的工作量进行比较,而不是更改一个功能


Steven Feuerstein的这篇文章很好地解释了硬编码

没错,调用函数的开销几乎总是无关紧要的。如果不是,那么通常会有设计问题。对于那些无法重构的极端情况,总是会有一些问题。你是对的,调用函数的开销几乎总是无关紧要的。如果不是,那么通常会有设计问题。对于那些无法重构的极端情况,总是会出现问题。