Oracle 在每次验证中重复调用函数与执行IF
我在Oracle11gR2中创建了两个函数。它们根据我的测试条件返回布尔值。每当我检查该条件的有效性时,我都会使用它。然而,我的一些同事建议我应该使用if语句进行比较,而不是调用函数,因为这会导致更多的上下文切换,降低系统的整体效率 所以我想知道哪种方法可以提高性能Oracle 在每次验证中重复调用函数与执行IF,oracle,validation,plsql,oracle11g,Oracle,Validation,Plsql,Oracle11g,我在Oracle11gR2中创建了两个函数。它们根据我的测试条件返回布尔值。每当我检查该条件的有效性时,我都会使用它。然而,我的一些同事建议我应该使用if语句进行比较,而不是调用函数,因为这会导致更多的上下文切换,降低系统的整体效率 所以我想知道哪种方法可以提高性能 调用函数并使用该语句进行验证,或者硬编码IF语句并执行相关验证?如果您保证不会多次使用IF语句(现在和将来),那么硬编码就足够了 但是,如果您不能保证这一点(几乎总是这样),那么调用函数的开销可以忽略不计。特别是如果您将其与对其进行
调用函数并使用该语句进行验证,或者硬编码IF语句并执行相关验证?如果您保证不会多次使用IF语句(现在和将来),那么硬编码就足够了 但是,如果您不能保证这一点(几乎总是这样),那么调用函数的开销可以忽略不计。特别是如果您将其与对其进行任何更改所需的工作量进行比较,而不是更改一个功能
Steven Feuerstein的这篇文章很好地解释了硬编码的含义,如果您保证不会多次使用if语句(现在和将来),那么硬编码就足够了 但是,如果您不能保证这一点(几乎总是这样),那么调用函数的开销可以忽略不计。特别是如果您将其与对其进行任何更改所需的工作量进行比较,而不是更改一个功能
Steven Feuerstein的这篇文章很好地解释了硬编码没错,调用函数的开销几乎总是无关紧要的。如果不是,那么通常会有设计问题。对于那些无法重构的极端情况,总是会有一些问题。你是对的,调用函数的开销几乎总是无关紧要的。如果不是,那么通常会有设计问题。对于那些无法重构的极端情况,总是会出现问题。