データ アクセス制限に関して、Oracle 関数のparallel enable 句deterministic
との違いは何ですか?
1 に答える
CREATE FUNCTION ステートメントに関するドキュメントで説明されているように:
確定的
関数がそのパラメーターに同じ値で呼び出されるたびに、同じ結果値を返すことを示します。
...
パッケージ変数を使用する関数や、関数の戻り結果に影響を与える可能性のある方法でデータベースにアクセスする関数を定義する場合は、この句を指定しないでください。データベースが関数を再実行しないことを選択した場合、その結果は取得されません。
と
parallel_enable_clause
関数がパラレル問合せ操作のパラレル実行サーバーから実行できることを示します。これらの変数はパラレル実行サーバー間で必ずしも共有されるとは限らないため、関数はパッケージ変数などのセッション状態を使用しないでください。
...
オプションの streaming_clause を使用すると、指定した列リストによって並列処理を順序付けまたはクラスター化できます。
ORDER BY は、パラレル実行サーバーの行をローカルで順序付けする必要があることを示します。
CLUSTER BY は、パラレル実行サーバーの行が column_list で指定されたものと同じキー値を持つ必要があることを示します。
これらは、必要な場合に使用する必要がある 2 つの完全に異なるオプションです。それらは同じものではないため、制限が何であれ、違いは絶対的です。