oracle表和段关系

来源:互联网 发布:中国雾霾数据统计 编辑:程序博客网 时间:2024/06/06 01: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.
0 0
原创粉丝点击