oracle lob的存儲

文章出處: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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章