2009-07-02 10 views
0

Oracle 10Gの索引構成表内にユーザー定義型を格納する際に、既知の問題はありますか。Oracleユーザー定義型を索引構成表に格納する効率

 
CREATE OR REPLACE TYPE MyList AS VARRAY(256) OF NUMBER(8,0); 

CREATE TABLE myTable (
    id NUMBER(10,0) NOT NULL, 
    my_list MyList NOT NULL) 
    CONSTRAINT pk_myTable_id PRIMARY KEY(id)) 
ORGANIZATION INDEX NOLOGGING; 

このタイプとテーブルの設定では、私は〜2.4Mのレコードを挿入してロードし、20Gのスペースをとってディスクスペースが足りなくなりました。データ型のサイズを見ると、これは格納されていたもののために多くのスペースを占めているようです。その後、テーブルを通常のテーブル(IOTではない)に変更し、〜7Gのストレージに6M +レコードを格納し、さらに512Mを要したPKインデックスを追加しました。

私は過去に何回もIOTを使用しましたが、ユーザー定義のタイプでは使用しませんでした。

なぜUDTとIOTを使用する場合のストレージ要件が非常に高いのですか?

答えて

0

AFAICR,は、が常にIOTの行に格納されます。

これで、ドキュメント内の参照を見つけてこれを確認しようとします。

+0

VARRAYは、IOTと標準ヒープ表の両方にLOBとして保管されていることがわかります。 –

+0

@RC:yesですが、4000バイトを超えないLOBは、行内および行外の両方に格納できます。 – Quassnoi

関連する問題