表関数ノードは、SQL ステートメントによって呼び出された表関数を表します。
表関数は表を返すユーザー定義関数です。
この関数は、SQL ステートメントの FROM 節内で指定されます。
SQL ステートメントは、同じ表関数を複数回呼び出すことができます。各呼び出しは、1 つの表関数ノードで表されます。
表関数ノードは、表関数の名前がラベルとして付けられ、デフォルトでは六角形として表示されます。
DB2 が表関数にアクセスする方法
DB2® は、表スペース・スキャン (TBSCAN) を使用して表関数にアクセスすることができます。DB2 は、表関数の結果を作業ファイルに入れてから、作業ファイル・スキャン (WFSCAN) を使用して作業ファイルにアクセスすることがあります。
DB2 オプティマイザーは、下の表にリストする表関数統計を使用して、アクセス・プランを決定します。
これらの統計は、表関数ノードに関する「記述子」ウィンドウで属性としてリストされます。これらの属性は、カタログ表 SYSIBM.SYSROUTINES を更新することによって指定できます。
CREATE FUNCTION ステートメントを使用して表関数を定義するときには、カーディナリティー属性の値も指定できます。
これらの属性を指定しなかった場合、
DB2 は、次の表にリストされたデフォルト値を使用します。
表 1. オプティマイザーが使用する表関数統計属性 |
説明 |
デフォルト値 |
カーディナリティー |
関数の予測カーディナリティー |
10 000 |
初期 CPU コスト |
最初および最後にその関数が呼び出されるときに実行される命令の予測数 |
40 000 |
初期入出力コスト |
最初および最後にその関数が呼び出されるときに実行される入出力の予測数 |
0 |
CPU コスト |
呼び出し当たりの命令の予測数 |
4 000 |
入出力コスト |
呼び出し当たりの入出力の予測数 |
0 |