標籤:oracle
-------------------------------邏輯結構------------------------------------
參考文檔:12章
tablespace 資料表空間 最大儲存單位 建立對象指定儲存在那個資料表空間
Segment 段: 可以儲存資料 表段(建立表xs 一定建議個段xs段)
Extent 區 :空間分配單位 (至少對象一個區)
Oracle data block 資料庫塊 最小i/0單位
連續的資料區塊就組成區 儲存同一類型的資料區域成為一個段 一個段只在一個資料表空間裡 一個資料表空間只能在一個資料庫裡
例如:我建立一個表xs (id number ,name char(10) ) 指定資料表空間為users 插入1條資料
create table scott.xs (id number ,name char(10)) tablespace users ;
insert into scott.xs values(1,‘tom‘);
650) this.width=650;" title="clip_image002" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="clip_image002" src="http://img1.51cto.com/attachment/201408/1/9202005_1406909833xMTp.jpg" "244" height="46" />
commit;
650) this.width=650;" title="clip_image003" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="clip_image003" src="http://img1.51cto.com/attachment/201408/1/9202005_140690983366EI.png" "244" height="94" />
會在users資料表空間分配空間給xs段 插入的資料
分配了多大的空間給xs段,如果我繼續插入資料,段會滿 ,繼續以Extent單位分配空間
select SEGMENT_NAME,SEGMENT_TYPE, TABLESPACE_NAME,EXTENT_ID, BLOCKS
from dba_extents
where OWNER =‘SCOTT‘ and SEGMENT_NAME=‘XS‘ ;
650) this.width=650;" title="clip_image005" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="clip_image005" src="http://img1.51cto.com/attachment/201408/1/9202005_1406909833a9Jb.jpg" "244" height="84" />
段名xs
是一個表段
使用空間是users
EXTENT_ID 第一個區是0 (編號從0開始)
blocks 佔用8個塊
一個塊大小多少?
SQL> show parameter db_block_size
650) this.width=650;" title="clip_image007" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="clip_image007" src="http://img1.51cto.com/attachment/201408/1/9202005_1406909833HkRk.jpg" "244" height="37" />
總結:我建立一個段xs 使用的uses資料表空間,分配1個區 佔有8個塊 總大小64K
繼續插入,如果資料量大於64K 資料庫怎麼辦?
insert into scott.xs select * from scott.xs ;
650) this.width=650;" title="clip_image008" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="clip_image008" src="http://img1.51cto.com/attachment/201408/1/9202005_1406909834Pb0M.png" "244" height="82" />
650) this.width=650;" title="clip_image009" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="clip_image009" src="http://img1.51cto.com/attachment/201408/1/9202005_14069098341dfj.png" "244" height="49" />
SQL> select SEGMENT_NAME,SEGMENT_TYPE, TABLESPACE_NAME,EXTENT_ID, BLOCKS
from dba_extents
where OWNER =‘SCOTT‘ and SEGMENT_NAME=‘XS‘ ;
650) this.width=650;" title="clip_image011" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="clip_image011" src="http://img1.51cto.com/attachment/201408/1/9202005_1406909834LpKt.jpg" "244" height="48" />
區是連續的資料區塊
BLOCK_ID 起始編號
select SEGMENT_NAME,SEGMENT_TYPE, TABLESPACE_NAME,EXTENT_ID, BLOCK_ID,BLOCKS
from dba_extents
where OWNER =‘SCOTT‘ and SEGMENT_NAME=‘XS‘ ;
650) this.width=650;" title="clip_image013" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="clip_image013" src="http://img1.51cto.com/attachment/201408/1/9202005_1406909834yyaS.jpg" "244" height="63" />
Tablespaces and Data Files 資料表空間和資料檔案之間的關係
資料表空間分為 大檔案資料表空間:一個資料表空間只能有1個資料檔案 支援到128T (?)
小檔案資料表空間(預設) :一個資料表空間裡面可以有多個資料檔案
建庫的時候預設強制建立system 和sysaux
system必須線上,儲存是核心功能(資料字典)
sysaux 儲存em的資訊
system sysaux 不建議儲存使用者資料
總結:
1 oracle server =instance +database
2 instance =meomoy +process
3 物理結構
4 邏輯結構