2013-04-05 7 views
6

私はXMLを格納しているテーブルを作成しています。 XMLを格納するには、私はCLOBデータ型を使用しています。私のXMLの最大サイズは5kbです。テーブルを作成するときにCLOBカラムのどのサイズを定義する必要がありますか?OracleでのCLOBのサイズの定義

答えて

10

clob(varcharとは異なります)を設定するときは、正確にサイズを定義しません。単にclobです。

ロブの最大サイズは4Gbです。次のように

ストレージが賢明それはスペースを使用します。ロブは、イン行として定義されて

  1. 場合、及びロブは〜4キロバイト未満である、それだけで、文書というスペースの量を取り上げますです。 (たとえば、512バイトのxmlを行内に格納し、512バイトを使用します。
  2. ロブが行外に定義されている(または4kbを超えている)場合、定義した "チャンク"サイズの倍数を使用します。

テーブルを作成するLOB列を作成するとき、あなたはこのようなオプション行にし、外の行を制御するために、その記憶域句を指定することができますことを指定します

LOB (c) STORE AS lobseg (DISABLE STORAGE IN ROW CHUNK 16384) 

すなわちlobは普通のテーブルのデータとインラインで保存することはできませんし、チャンクごとに16kbの倍数でストレージを割り当てます。したがって、ドキュメントが1kbだったとしても、16kbのsto怒り

xmlドキュメントが5kbのみの場合は、インラインストレージを考慮し、小さなチャンクサイズを設定することができます(最小チャンクサイズは1ブロックです。したがって、4KBエクステントを持つテーブルスペースを使用する場合、最小チャンクサイズは4kbになります; lessを指定すると無視されます)。行内のロブを許可することの欠点は、テーブルが大きくなるため、大規模なスキャンには少し苦労する(ロブ検索は高速です)ということです。

また、11gでは、(ライセンスがそれをカバーする場合)考慮する必要のあるロブセグメントを圧縮するオプションがあります。このような小さな文書では、大きなメリットはありません。

はここで詳しく読む: - *(DBブロックサイズ)は、8と128 TBの間にうまくいく11gではhttp://docs.oracle.com/cd/B28359_01/appdev.111/b28393/adlob_tables.htm

+5

を、LOBの最大サイズは(1~4 GB)です。多くの人が古い4 GBの制限を超える必要はありませんが、そうすることができます。 http://docs.oracle.com/cd/B28359_01/server.111/b28320/limits001.htm –

関連する問題