在Oracle中定义CLOB的大小

Fem*_*ale 7 sql clob oracle11g

我正在制作一个存储XML的表.要存储XML,我使用的是CLOB数据类型.我的XML的最大大小为5kb.我应该在创建表时定义CLOB列的大小?

Daz*_*zaL 11

在设置clob时不会完全定义大小(与varchar不同).这很简单clob.

吊球的最大尺寸为4Gb.

存储方面,它将使用如下空间:

  1. 如果将lob定义为行内,并且lob小于~4kb,则它将占用文档的空间量.(例如,在行中存储512字节的xml,它将使用512字节.
  2. 如果lob被定义为行(或超过4kb),那么它将使用您在创建表时定义的"chunk"大小的倍数.

在创建lob列时,您可以指定其storage子句来控制行内和行外选项,如下所示:

LOB (c) STORE AS lobseg (DISABLE STORAGE IN ROW CHUNK 16384)
Run Code Online (Sandbox Code Playgroud)

即,这将指定lob永远不会与常规表数据一起存储,并将以每块16kb的倍数分配存储,因此即使您的文档是1kb,也需要16kb的存储空间.

如果您的xml文档只有5kb,您可能需要考虑行内存储,并放一个小块大小(最小块大小为1块,所以如果你有一个4kb范围的表空间,你的最小块大小将是4kb ;如果指定less,则会被忽略).允许行内凸起的缺点是表格会更大,因此大范围扫描可能会受到一些影响(但是检索更快).

同样在11g中你可以选择压缩你可能想要考虑的高分段(如果你的许可涵盖它).虽然有这么小的文件,你可能不会受益匪浅.

在这里阅读更多内容:http://docs.oracle.com/cd/B28359_01/appdev.111/b28393/adlob_tables.htm

  • 在11g中,LOB的最大大小为(4 GB - 1)*(DB块大小),其范围为8到128 TB.并不是很多人需要超过旧的4 GB限制,但你可以.http://docs.oracle.com/cd/B28359_01/server.111/b28320/limits001.htm (6认同)