我正在创建一个存储XML的表。要存储XML,我使用的是CLOB数据类型。我的XML的最大大小为5kb。在创建表时我应该定义CLOB列的大小?
答案 0 :(得分:11)
在设置clob时不会完全定义大小(与varchar不同)。它只是clob
。
吊球的最大尺寸为4Gb。
存储方面,它将使用如下空格:
创建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