【问题标题】:Difference between DETERMINISTIC and PARALLEL_ENABLED with functions in OracleOracle 中 DETERMINISTIC 和 PARALLEL_ENABLED 与函数的区别
【发布时间】:2013-06-27 05:09:32
【问题描述】:

deterministic和Oracle函数中的parallel enable子句在数据访问限制方面有什么区别?

【问题讨论】:

  • 你的意思是什么类型的数据访问限制?

标签: oracle function plsql


【解决方案1】:

documentation on the CREATE FUNCTION statement中所述:

确定性

表示函数无论何时返回相同的结果值 调用时使用相同的参数值。

...

不要指定此子句来定义使用包的函数 变量或以任何可能影响数据库的方式访问数据库 函数的返回结果。这样做的结果不是 如果数据库选择不重新执行函数,则捕获。

parallel_enable_clause

表示函数可以从并行执行服务器运行 并行查询操作。该函数不得使用会话 状态,例如包变量,因为这些变量不是 必须在并行执行服务器之间共享。

...

  • 可选的 streaming_clause 允许您按指定的列列表对并行处理进行排序或聚类。

    • ORDER BY 表示并行执行服务器上的行必须是本地排序的。

    • CLUSTER BY 表示并行执行服务器上的行必须具有与 column_list 指定的键值相同的键值。

如果需要,应该使用这两个完全不同的选项。区别是绝对的,无论可能有什么限制,因为它们不是一回事。

【讨论】:

    猜你喜欢
    • 2023-02-08
    • 2014-10-14
    • 1970-01-01
    • 2012-06-26
    • 2016-02-17
    • 1970-01-01
    • 1970-01-01
    • 2013-09-09
    • 1970-01-01
    相关资源
    最近更新 更多