2

データ アクセス制限に関して、Oracle 関数のparallel enable 句deterministicとの違いは何ですか?

4

1 に答える 1

5

CREATE FUNCTION ステートメントに関するドキュメントで説明されているように:

確定的

関数がそのパラメーターに同じ値で呼び出されるたびに、同じ結果値を返すことを示します。

...

パッケージ変数を使用する関数や、関数の戻り結果に影響を与える可能性のある方法でデータベースにアクセスする関数を定義する場合は、この句を指定しないでください。データベースが関数を再実行しないことを選択した場合、その結果は取得されません。

parallel_enable_clause

関数がパラレル問合せ操作のパラレル実行サーバーから実行できることを示します。これらの変数はパラレル実行サーバー間で必ずしも共有されるとは限らないため、関数はパッケージ変数などのセッション状態を使用しないでください。

...

  • オプションの streaming_clause を使用すると、指定した列リストによって並列処理を順序付けまたはクラスター化できます。

    • ORDER BY は、パラレル実行サーバーの行をローカルで順序付けする必要があることを示します。

    • CLUSTER BY は、パラレル実行サーバーの行が column_list で指定されたものと同じキー値を持つ必要があることを示します。

これらは、必要な場合に使用する必要がある 2 つの完全に異なるオプションです。それらは同じものではないため、制限が何であれ、違いは絶対的です。

于 2013-06-29T15:43:09.007 に答える