oracle-tom-表和段關係

oracle_db發表於2012-04-25
TABLE &SEGMENT RELATIONSHIP:
一個表可以對應一個或者多個段,最簡單的情況是一個表對應一個段。一般情況下建立一個表也就是建立一個表段,下面包含區,區下面又劃分為塊。這是一般的儲存結構。也有例外情況。如:


會話1:
新建使用者
SQL> create user user1 identified by user1;

User created.

SQL> grant connect,resource to user1;

Grant succeeded.

SQL> conn user1/user1;
Connected.
在新使用者下檢視段情況
SQL> select segment_name,segment_type from user_segments;

no rows selected

SQL> create table t (x int primary key,y clob,z blob);

Table created.
當建立完第一個表後在看一下段使用情況
SQL> col segment_name format a30
SQL> col segment_type format a10
SQL> select segment_name,segment_type from user_segments;

SEGMENT_NAME                   SEGMENT_TY
------------------------------                       ----------
SYS_C006061                                     INDEX
SYS_IL0000053473C00003$$       LOBINDEX
SYS_LOB0000053473C00003$$  LOBSEGMENT
SYS_IL0000053473C00002$$       LOBINDEX
SYS_LOB0000053473C00002$$   LOBSEGMENT
T                                                              TABLE

6 rows selected.

SQL> 
說明:在這裡建立了一個表,但是是這個表不僅僅是對應一個段而是多個。表自己建立了一個段,主鍵索引建立了一個索引段,每個LOB列分別建立兩個段,一個用來存放大物件所指的實際資料塊,一個用來組織這些資料塊。LOB儲存在LOGSEGMENT塊中,LOGINDEX用來跟蹤這些塊在那裡

如果建立一個空表什麼也不加,沒有主鍵,約束等。如:

SQL> create table user1(id int,name varchar2(50));

Table created.

SQL> select segment_name,segment_type from user_segments;

SEGMENT_NAME                   SEGMENT_TY
------------------------------ ----------
USER1                          TABLE   【這裡就是一個表對應一個段的情況】
SYS_C006061                    INDEX
SYS_IL0000053473C00003$$       LOBINDEX
SYS_LOB0000053473C00003$$      LOBSEGMENT
SYS_IL0000053473C00002$$       LOBINDEX
SYS_LOB0000053473C00002$$      LOBSEGMENT
T                              TABLE

7 rows selected.



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15720542/viewspace-722169/,如需轉載,請註明出處,否則將追究法律責任。

相關文章