oracle lob的存储

来源:互联网 发布:直销软件开发xazxrj 编辑:程序博客网 时间:2024/06/10 16:29
文章出处:http://blog.itpub.net/post/2553/16633
在我们的DB中可能会有一些lob型的数据要来存放,我们知道它是如何存放的吗?我们知道在我们建一个表的时候,oracle对在对应的表空间在给我们一个segent中来存放数据,并且会因为数据量的增大再做扩展。但是当我们所建立的表中含有lob型的数据时,oracle会为每个lob字段生成一个独立的segment用来存放数据,同时也建立了独立的index segment .oracle对它们是单独管理的。我们来看一个例子

SQL> conn scott/tiger
已连接。
SQL> create table TEST_BLOB
  2  (
  3    FILE_NAME  VARCHAR2(25),
  4    FILE_BIN     BLOB,
  5    FILE_BIN2    BLOB
  6  );

表已创建。

SQL> select T.owner,T.segment_name,T.segment_type from dba_segments t
  2  where t.segment_name like 'SYS_%'
  3  AND T.owner='SCOTT';

OWNER                          SEGMENT_NAME                                 SEGMENT_TYPE


SCOTT         SYS_IL0000025785C00002$$                        LOBINDEX
SCOTT         SYS_IL0000025842C00002$$                        LOBINDEX                     
SCOTT         SYS_IL0000025842C00003$$                        LOBINDEX

SCOTT         SYS_LOB0000025785C00002$$                     LOBSEGMENT
SCOTT         SYS_LOB0000025842C00002$$                     LOBSEGMENT
SCOTT         SYS_LOB0000025842C00003$$                     LOBSEGMENT

6 rows selected

SQL> DROP TABLE TEST_BLOB;

表已丢弃。

SQL> select T.owner,T.segment_name,T.segment_type from dba_segments t
  2  where t.segment_name like 'SYS_%'
  3  AND T.owner='SCOTT'
  4  /

OWNER                          SEGMENT_NAME                                 SEGMENT_TYPE

SCOTT         SYS_IL0000025785C00002$$                        LOBINDEX
SCOTT         SYS_LOB0000025785C00002$$                     LOBSEGMENT

原创粉丝点击