在Oracle中定义CLOB的大小

时间:2013-04-05 22:08:28

标签: sql oracle11g clob

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

1 个答案:

答案 0 :(得分:11)

在设置clob时不会完全定义大小(与varchar不同)。它只是clob

吊球的最大尺寸为4Gb。

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

  1. 如果将lob定义为行内,并且lob小于~4kb,则它将占用文档的空间量。 (例如,在行中存储512字节的xml,它将使用512字节。
  2. 如果lob被定义为行(或超过4kb),那么它将使用您在创建表时定义的“块”大小的倍数。
  3. 创建lob列时,您可以指定其storage子句来控制行内和行外选项,如下所示:

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

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

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

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

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

相关问题