暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle CLOB 的坑

IT界数据库架构师的漂泊人生 2020-12-14
1777


最近入职两家金融贷款工作,两家都采用CLOB字段来存储征信信息.

第二家要做测试,6张表都含有CLOB字段.研发要求我们做出分区表,然后在原来测试机上的单表装到分区表中.

在装数据过程,觉得贼慢,7个G的要装了5个小时.

领导说要采用SECUTFILE 11G的新特性,结果装完后,原来2个G的变成了32G

我的天!

  颠覆我的想象!

前几天跟快贷项目组的3个开讨论会,研发工程师在PPT上谈到估算值的时候,我就问表和CLOB是分开存储的,有没有统计全? 对方说统计全了.

晚上整数据的时候,我用TOAD 11 FOR ORACLE 查看下 CLOB字段的存储参数.本来是想找压缩参数的. 结果发现有个IN ROW 打勾

IN ROW 是啥意思呢?

The default, ENABLE STORAGE IN ROW, is usually the best choice for the following reasons:

  • Small LOBs: If the LOB is small (less than approximately 4000 bytes), then the whole LOB can be read while reading the row without extra disk I/O.

  • Large LOBs: If the LOB is big (greater than approximately 4000 bytes), then the control information is still stored in the row if ENABLE STORAGE IN ROW is set, even after moving the LOB data out of the row. This control information could enable us to read the out-of-line LOB data faster.


默认情况下CLOB是存储在行里的,我的天! 当然上面建议超过4K字符可以存外面.这个与我原来的知识相背啊,感觉被打脸了!

一般情况下CLOB是比较少使用的,属于冷字段.顶多是1次写入,多次读取.

而应用也是通过客户编号来读取CLOB里的特征值。默认情况下ORACLE应该把CLOB 等LOB 设置成行外存储。

 实际上SEGMENTS 表也有CLOB段和CLOB索引段。然我查了下原表中的CLOB段大小才几K。才服了ORACLE的坑,李兰妈妈!


那个SECUTEFILE 特性 我开启了HIGHT高压缩。结果7G居然变成了30GB。


我们理论学得满满的,实际反而会被打脸。

所以搞DBA还是多使用TOAD工具来获得更多的存储参数,这样理论会联系实际。

 另外新特性的 没有官方吹得那么牛逼。


获得表、索引、视图、存储过程、函数的DDL


 代码如下:

select dbms_metadata.get_ddl('TABLE','TABLE_NAME','TABLE_OWNER') from dual;

select dbms_metadata.get_ddl('INDEX','INDEX_NAME','INDEX_OWNER') from dual;

select dbms_metadata.get_ddl('VIEW','VIEW_NAME','VIEW_OWNER') from dual;

select dbms_metadata.get_ddl('PROCEDURE','PROCEDURE_NAME','PROCEDURE_OWNER') from dual;

select dbms_metadata.get_ddl('FUNCTION','FUNCTION_NAME','FUNCTION_OWNER') from dual;


另外CLOB 还有其他存储段 CHUNK  CACHE 

CREATE TABLE ContainsLOB_tab (n NUMBER, c CLOB)  

      lob (c) STORE AS BASICFILE segname (TABLESPACE lobtbs1 CHUNK 4096 

                        PCTVERSION 5 

                        NOCACHE LOGGING 

                        STORAGE (MAXEXTENTS 5) 

                       ); 


文章转载自IT界数据库架构师的漂泊人生,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论