-------------------------------邏輯結構------------------------------------
參考文檔: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');
commit;
會在users表空間分配空間給xs段 插入的數據
分配了多大的空間給xs段,如果我繼續插入數據,段會滿 ,繼續以Extent單位分配空間
select SEGMENT_NAME,SEGMENT_TYPE, TABLESPACE_NAME,EXTENT_ID, BLOCKS
from dba_extents
where OWNER ='SCOTT' and SEGMENT_NAME='XS' ;
段名xs
是一個表段
使用空間是users
EXTENT_ID 第一個區是0 (編號從0開始)
blocks 佔用8個塊
一個塊大小多少?
SQL> show parameter db_block_size
總結:我建立一個段xs 使用的uses表空間,分配1個區 佔有8個塊 總大小64K
繼續插入,如果數據量大於64K 數據庫怎麼辦?
insert into scott.xs select * from scott.xs ;
SQL> select SEGMENT_NAME,SEGMENT_TYPE, TABLESPACE_NAME,EXTENT_ID, BLOCKS
from dba_extents
where OWNER ='SCOTT' and SEGMENT_NAME='XS' ;
區是連續的數據塊
BLOCK_ID 起始編號
select SEGMENT_NAME,SEGMENT_TYPE, TABLESPACE_NAME,EXTENT_ID, BLOCK_ID,BLOCKS
from dba_extents
where OWNER ='SCOTT' and SEGMENT_NAME='XS' ;
Tablespaces and Data Files 表空間和數據文件之間的關係
表空間分爲 大文件表空間:一個表空間只能有1個數據文件 支持到128T (?)
小文件表空間(默認) :一個表空間裏面可以有多個數據文件
建庫的時候默認強制建立system 和sysaux
system必須在線,存儲是核心功能(數據字典)
sysaux 存儲em的信息
system sysaux 不建議存儲用戶數據
總結:
1 oracle server =instance +database
2 instance =meomoy +process
3 物理結構
4 邏輯結構