【发布时间】:2013-06-27 05:09:32
【问题描述】:
deterministic和Oracle函数中的parallel enable子句在数据访问限制方面有什么区别?
【问题讨论】:
-
你的意思是什么类型的数据访问限制?
deterministic和Oracle函数中的parallel enable子句在数据访问限制方面有什么区别?
【问题讨论】:
如documentation on the CREATE FUNCTION statement中所述:
确定性
表示函数无论何时返回相同的结果值 调用时使用相同的参数值。
...
不要指定此子句来定义使用包的函数 变量或以任何可能影响数据库的方式访问数据库 函数的返回结果。这样做的结果不是 如果数据库选择不重新执行函数,则捕获。
和
parallel_enable_clause
表示函数可以从并行执行服务器运行 并行查询操作。该函数不得使用会话 状态,例如包变量,因为这些变量不是 必须在并行执行服务器之间共享。
...
可选的 streaming_clause 允许您按指定的列列表对并行处理进行排序或聚类。
ORDER BY 表示并行执行服务器上的行必须是本地排序的。
CLUSTER BY 表示并行执行服务器上的行必须具有与 column_list 指定的键值相同的键值。
如果需要,应该使用这两个完全不同的选项。区别是绝对的,无论可能有什么限制,因为它们不是一回事。
【讨论】: