【问题标题】:Oracle Nvl and to_char functionOracle Nvl 和 to_char 函数
【发布时间】:2012-05-30 06:38:06
【问题描述】:

现在,我要修改proc中的一条SQL,唯一的修改是在select子句中添加一个带有nvl和to_char函数的列,在where子句中没有修改。
我的问题是,这种修改会导致任何性能问题吗?

SQL 演示如下:

原始SQL:

Select a.c1, b.c2 from a, b where a.c3=b.c4

修改后:

Select a.c1, b.c2, nvl(to_char(b.c5,'FM00000000'), '.       ') As c5 from a, b where a.c3=b.c4

谢谢

【问题讨论】:

    标签: sql performance oracle


    【解决方案1】:

    此更改不太可能导致明显的性能下降。

    oracle 查询中成本最高的部分将是由连接和 where 子句指定的数据选择。你没有改变它。您返回的行数将是相同的。两次函数调用会导致每行返回的成本非常小,每行返回的数据略多,但与行选择相比,这可能可以忽略不计。

    【讨论】:

    • 如果 b(c4,c2) 上有索引并且执行计划使用仅索引检索,则可能会产生显着影响。
    猜你喜欢
    • 1970-01-01
    • 2018-03-15
    • 1970-01-01
    • 1970-01-01
    • 2021-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多