2009年5月13日水曜日

Oracle:DB-カーディナリティ

カーティナリティとは、"集合の要素の数・基数"である。
どれだけのキーの種類があるか、キーの偏りはないかといったことである。
キーの種類が多い場合を"カーディナリティが高い"、
キーの種類が少ない場合を"カーディナリティが低い"と表現する。

たとえば、社員コードは普通、全て一意性があるので"カーディナリティが高い"。
では、社員マスターの性別は男と女だけなので、"カーディナリティが低い"。

■カーディナリティのチェック方法

SQL>SELECT COUNT(*) from TABLE_A;
(全件件数を確認)
SQL>SELRCT COL1,COL2,COUNT(*) FROM TABLE_A GROUP BY COL1,COL2;
(キー種類数を確認)

キー種類数 / 全件件数 = カーディナリティ


この時の結果が30%以上のような場合は、意味の無い(負荷の低減どころか、負
荷を増加させている)インデックス利用といったことになる。

0 件のコメント: