表ノード

表ノードは、SQL ステートメント内で参照される表を表します。参照される表は、基本表、グローバル一時表、またはビューです。

1 つの SQL ステートメントで同じ表を複数回参照できます。それぞれの参照は 1 つの表ノードで表されます。

表ノードは、参照される表の名前がラベルとして付けられ、デフォルトでは長方形として表示されます。 表の相関名、作成者名、またはカーディナリティーもラベルに表示できます。 RUNSTATS ユーティリティーが表の統計を収集していない場合、表ノードは赤で枠取りされます。 オプティマイザーが表カーディナリティーにデフォルト値を使用すると、そのカーディナリティーにはデフォルトとしてのマークが付けられます。 デフォルトのカーディナリティー値はカタログ表 SYSIBM.SYSTABLES に -1 として保管されます。ただし、オプティマイザーはデフォルト値として 10 000 を使用します。

RUNSTATS が統計を収集していない場合、オプティマイザーは必ずしもデフォルト値を使用しません。 SYSIBM.SYSTABLES 内の値を手動で更新した場合、オプティマイザーはそれらの値を使用し、デフォルト値は使用しません。

DB2 が表にアクセスする方法

DB2® は、表スペース・スキャン (TBSCAN)、フェッチを行う単一または複数の索引アクセス (FETCH)、または直接フェッチ (DFETCH) を使用して表にアクセスします。DB2 オプティマイザーは、下の表にリストする表統計に基づいてアクセス方式を決定します。 これらの統計は、表ノードに関する「記述子」ウィンドウで属性としてリストされます。これらの統計を提供するには、RUNSTATS ユーティリティーを使用して統計を収集するか、またはカタログ表 SYSIBM.SYSTABLES を手動で更新してください。これらの統計を提供しなかった場合、DB2 は、次の表にリストされたデフォルト値を使用します。
表 1. オプティマイザーが使用する表統計
属性 説明 デフォルト値
行数 行の合計数 10 000
ページ数 ページの合計数 501
圧縮行パーセンテージ 圧縮行のパーセンテージ 0

フィードバック