DSNXRSFN

DSNXRSFNは、DB2のデータ マネージャー コンポーネントの一部であり、SELECTステートメントの関数のランタイム処理に関連します。

ヒント

このモジュールは、組み込み関数(SUM、AVG、MIN、またはMAX)が使用されたときに使用されます。

列関数の評価点が、PLAN_TABLEの列COLUMN_FN_EVALに表示されます。

  • Sは、列関数がソート中に評価されることを示します。

  • Rは、関数がデータの読み取り中に評価されることを示します。

  • ブランクは、関数が検索とソート後に評価されることを示します。

  • Rは、Sより効率的な処理を示します。Sは、ブランクより効率的です。

組み込み関数を使用して頻繁にアクセスされる列は、索引付けの対象として適しています。これは、索引の存在によってDB2表のデータ ページにアクセスすることなく関数を評価できることと、クラスター化索引の使用によってプラン表ACCESSTYPEの"I1"で指定された1つの索引ページへのアクセスが制限される可能性があるためです。

ソートを呼び出すステートメントに列関数が含まれると、ソートを回避するための索引が使用されていない場合は、検索とソート後に評価されることになります。ソート回避に関する推奨事項については、DSNITLPEモジュールのヘルプを参照してください。

実際の修飾行数が必要でない場合は、少なくとも1行の存在を判別するために、COUNT (*)を使用しないようにしてください。この照会をシングルトンSELECTとしてコーディングし直して、SQLCODE.をテストします。SQLCODEが0の場合、1つの行が修飾します。SQLCODEが-811の場合、複数の行が修飾します。

この照会が結合処理の場合、すべてのセット関数が、データ検索時に評価される関数に対して結合された最後の表にある必要があります。

参考資料

『IBM Db2 for OS/390, Messages and Codes(GC26-8979)』

『IBM Db2 for OS/390, Application Programming and SQL Guide(SC26-8958)』

『IBM Db2 for OS/390, Administration Guide(SC26-8957)』