表ノードは、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 |