我在Oracle 11g R2中创建了两个函数。它们根据我的测试条件返回布尔值。每当我检查那个条件的有效性时,我就用过它。然而,我的一些同事建议我应该使用if语句进行比较而不是调用函数,因为它会导致更多的上下文切换,从而降低系统的整体效率。
所以我想知道哪种方法可以提高性能。
调用函数并使用该函数或硬编码IF语句验证它并执行相关验证?
答案 0 :(得分:3)
IMPO,如果您保证不会多次使用IF语句(现在和将来),那么它的公平性就足以对其进行硬编码。
但是,如果你不能保证(几乎总是如此),调用函数开销可以忽略不计。特别是如果将它与对IF(s)进行任何更改所需的工作量进行比较,而不是更改一个函数。
Steven Feuerstein的video解释了硬编码