読者です 読者をやめる 読者になる 読者になる

Oracleのindexの索引について

こんな感じでわかる。

SELECT NAME,HEIGHT,
LF_ROWS AS "リーフ行の数",
LF_BLKS AS リーフブロック数,
DEL_LF_ROWS AS "削除リーフ行の数",
TO_CHAR(DEL_LF_ROWS/LF_ROWS * 100,'999.9') || '%' AS "削除リーフ行の割合"
FROM INDEX_STATS;

一般的にHEIGHTが4以上、削除リーフ行の割合が20%以上になると再構築対象となる。

SELECT NAME,HEIGHT,
LF_ROWS AS "リーフ行の数",
LF_BLKS AS リーフブロック数,
DEL_LF_ROWS AS "削除リーフ行の数",
TO_CHAR(DEL_LF_ROWS/LF_ROWS * 100,'999.9') || '%' AS "削除リーフ行の割合",
DECODE(SIGN(HEIGHT-3),1,'ERROR'),
DECODE(SIGN(DEL_LF_ROWS/LF_ROWS * 100 - 20),1,'ERROR')
FROM INDEX_STATS;