XML を格納するテーブルを作成しています。XML を格納するために、CLOB
データ型を使用しています。XML の最大サイズは 5kb です。
テーブルの作成時に列のサイズCLOB
を定義する必要がありますか?
clob を設定するときにサイズを正確に定義するわけではありません (varchar とは異なります)。それはただ単にclob
です。
LOB の最大サイズは 4Gb です。
ストレージに関しては、次のようにスペースを使用します。
LOB列を作成するとき、そのストレージ句を指定して、次のように行内オプションと行外オプションを制御できます。
LOB (c) STORE AS lobseg (DISABLE STORAGE IN ROW CHUNK 16384)
つまり、LOB を通常のテーブル データとインラインで格納できないことを指定し、チャンクごとに 16kb の倍数でストレージを割り当てるため、ドキュメントが 1kb の場合でも、16kb のストレージが必要になります。
xml ドキュメントが 5kb しかない場合は、行内ストレージを検討し、小さなチャンク サイズを配置することをお勧めします (最小チャンク サイズは 1 ブロックであるため、4kb エクステントを持つテーブルスペースがある場合、最小チャンク サイズは 4kb になります)。 ; less を指定すると無視されます)。行内 LOB を許可することの欠点は、テーブルが大きくなるため、大規模な範囲のスキャンが少し影響を受ける可能性があることです (ただし、LOB の取得は高速です)。
また、11g では、LOB セグメントを圧縮するオプションがあります (ライセンスでカバーされている場合)。このような小さなドキュメントでは、大きなメリットはないかもしれません。
詳細はこちら: http://docs.oracle.com/cd/B28359_01/appdev.111/b28393/adlob_tables.htm