3.5.14. 非決定的関数処理


データ仮想化は、さまざまな決定論による機能を分類します。関数が評価され、結果をキャッシュできるエクステントは決定レベルに基づいています。

決定論的
この関数は、指定の入力に同じ結果を常に返します。決定論的な関数は、すべての入力値が認識されるとすぐにエンジンによって評価されます。これは書き換えフェーズの直後に発生する可能性があります。lookup 関数などの一部の機能は、実際には決定論的ではありませんが、パフォーマンスなどのように処理されます。このリストの残りの項目に従って分類されていない関数は、すべて決定論的とみなされます。
ユーザーの決定論的
この関数は、同じユーザーの指定された入力に同じ結果を返します。これには、hasRole および user 関数が含まれます。決定論的関数は、すべての入力値が認識されるとすぐにエンジンによって評価されます。これは書き換えフェーズの直後に発生する可能性があります。ユーザー決定論的な関数が準備済み処理計画の作成時に評価された場合、作成されるプランはユーザーに対してのみキャッシュされます。
セッション決定
この関数は、同じユーザーセッションで指定された入力に同じ結果を返します。このカテゴリーには env 関数が含まれます。セッション決定関数は、すべての入力値が認識されるとすぐにエンジンによって評価されます。準備済み処理計画の作成時にセッション決定論的な機能が評価されると、作成されるプランはユーザーのセッションに対してのみキャッシュされます。
コマンド決定
関数評価の結果は、user コマンドのスコープ内でのみ決定論的です。このカテゴリーには、curdate 関数、curtime 関数、現在は commandpayload 関数が含まれます。コマンド決定論的な関数は、これらの関数を使用する準備されたプランが関連する値で実行されるように処理されるまで評価に遅延します。コマンド決定的な関数評価は、プッシュダウンの前に行われます。ただし、同じコマンド決定論的な時間関数が複数表示される場合は、同じ値に評価することは保証されません。
非決定的
関数評価の結果は完全に非決定論的です。このカテゴリーには、実行され 関数と nondeterministic のマークが付けられた UDF が含まれます。非決定的関数は、プッシュダウンを優先して処理するまで評価の遅れます。関数がプッシュされない場合、その実行コンテキストのすべての行に対して評価できます(たとえば、関数が select 句で使用される場合)。
注記

Uncorrelated subqueries は、それらで使用される関数に関係なく、決定論的として処理されます。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat