dポイントプレゼントキャンペーン実施中!

rebuild対象をblevel>3という条件にしたのですが
簡単にblebel>3のデータを作るにはどうすれば良いのでしょうか?教えてください。

A 回答 (3件)

下記、テーブル作成時にnumberではなくchar(2000)などにすると、もっと早くリーフの階層が深くなりますね。

    • good
    • 0
この回答へのお礼

ありがとうございます。
早速試してみます。

お礼日時:2005/03/27 21:05

こんな感じでどうですか?環境によっても変わると思いますが。


ダメなら適当にLOOP回数(J)を増やしてみてください。

------------------------------------------------
CREATE TABLE TABLE01 (AAA number(5));

BEGIN
FOR I IN 1..99 LOOP
IF I MOD 10 = 0 THEN
INSERT INTO TABLE01 (AAA) VALUES (i);
END IF;
END LOOP;
COMMIT;
END;
/

CREATE INDEX INDEX01 ON TABLE01 (AAA);

BEGIN
FOR J IN 1.. 30 LOOP
FOR I IN 1..99 LOOP
IF I MOD 10 = 0 THEN
INSERT INTO TABLE01 (AAA) VALUES (i);
END IF;
END LOOP;
COMMIT;
END LOOP;
END;
/
    • good
    • 0

すべてのインデックスをANALYZEし、INDEX_STATSのHEIGHT列を参照する方法ではダメでしょうか?


※「blevel」の意味が良くわからなかったので、B*Tree構造の階層レベルと受け取りました

1.ANALYZE文の作成
  select 'analyze index ' || index_name || ' validate structure;' from user_indexes;

2.全インデックスに対してANALYZE
  1で作成したSQLを実行

3.リストアップ
  select name,partition_name from index_stats where height >= 3;

この回答への補足

ありがとうございます。
検索方法はわかりましたが、インデックスのblebel(多分HEIGHTが3ならblebelは2と思います)を3にするにはどうすれば良いのでしょうか?
insertしても2にはなりますが、3になりません。

補足日時:2005/03/22 20:07
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す