一、oracle邏輯體系結構圖
二、邏輯結構組成
oralce的邏輯結構包括
1、表空間
2、段
3、區
4、塊
oracle數據庫由若干個表空間組成,表空間由若干個段組成,段由若干個區組成,區由若干個塊組成。
表空間又分爲系統表空間、回滾段表空間,臨時表空間和用戶表空間。
我們所創建的表與邏輯結構中的段相對應,T表就是T段,但一個表不是隻對應一個段(如果表中有lob字段,則lob字段至少對應2個段,一個數據段一個索引段,或者表是分區表,則每個分區對應一個段)
區的設計是爲了避免過度擴展,因爲塊的尺寸太小,如果按塊進行擴展,則效率太低;
塊是oralce最小邏輯數據單位,區是oracle分配空間的最小單位;數據庫塊默認大小是8k,也可以是其他大小,一般爲操作系統os塊的整數倍。
當我們創建T表(段)時,oracle就爲其分配了包含若干個數據塊的初始數據區(initial extent),此時表中還沒有數據,這些數據塊是爲了做準備;當向T表插入數據,初始數據區裝滿了,而且又有新數據要插入時,oracle會自動爲這個段分配一個新增數據擴展區,這個新增數據擴展是一個段中已有數據擴展之後分配的後續數據擴展,容量大於或等於之前的數據擴展,即含有的數據塊可能會多餘之前的區;
數據擴展有2種方式,一種是固定容量的擴展(uniform),另一種是系統管理的擴展(autoallocate),那麼分配的數據擴展的容量可以是用戶設定的固定值,也可以是系統自動決定的可變值,這取決於用戶創建表空間時,使用uniform指令,還是autoallocate指令;
三、邏輯結構之塊
1、查詢數據庫塊大小
SQL> show parameter db_block_size;
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
db_block_size integer 8192
四、邏輯結構之表空間
1、普通數據表空間、回滾段表空間、系統表空間數據文件在dba_data_files表裏查詢
2、臨時表空間數據文件在dba_temp_files表裏查詢
五、邏輯結構之區
1、查看某表的各區信息