oracle的儲存結構分為物理結構與邏輯結構
物理結構:資料檔案(datafiles)、聯機日誌檔案(online redo logs)和控制檔案(control files)
另外檔案:引數檔案、警報檔案、跟蹤檔案、備份檔案
邏輯結構:資料塊、區、段、表空間
一、資料塊
1、資料塊格式:
塊頭:存放塊的基本資訊,如:塊的實體地址、塊所屬的段型別(是資料段還是索引段)
表目錄:存放表的資訊
行目錄:如果塊中有行資料存在,則這些行的資訊將被記錄在行目錄中。這些資訊包括行的位址等
行資料:是真正存放表資料和索引資料的地方。
空餘空間:是乙個塊中沒有使用的區域,用於新行的插入和已經存在的行的更新
頭部資訊區:把塊頭、表目錄、行目錄這三部分合稱為頭部資訊。
2、資料塊中自由空間的使用
當insert資料時,塊中的自由空間會減少,當update(使記錄變長),塊中的自由空間也會變少。
delete語句和update語句會使塊中的自由空間增加。
3、行鏈結與行遷移
4、塊中自由空間的自動管理
oracle使用位圖(bitmap)來管理和跟蹤資料塊,這種塊的空間管理叫自動管理
a.易於使用 b、更好地利用空間 c、可以對空間進行實時調整
5、塊中自由空間的手動管理
可通過pctfree、pctused來調整塊中空間的使用,手動管理方式比較麻煩,不容易掌握,容易造成塊中空間的浪費。
二、區區是一段連續的儲存空間,當段中的空間耗盡時,oracle會分配乙個新的區給這個段。
當建立乙個表時,oracle會給這個表的資料段分配乙個初始區,即使沒有資料的插入,oracle還是會分配這個初始區。
伴隨著資料的新增,這個初始區的空間會被填滿,oracle會再分配乙個新的區給這個資料段,叫做「遞增區」
分配機制:表空間級別、表級別
三、段1、資料段
存放資料,乙個單獨的段可以存放下面的資料:乙個普通表的資料、分割槽表中的乙個分割槽、聚簇表
建立表的時候,其實質就是建立乙個或多個段。建立資料段的時候,可以指定資料段的儲存引數
2、索引段
用於存放索引資料,建立索引段的時候,可以指定索引段的儲存引數
3、臨時段
用於存放臨時資料。用於資料的排序。只有記憶體不足的時候,oracle才會用到臨時段。
oracle用到臨時段,是資料庫效能降低的乙個徵兆。所以dba應該盡量讓排序在記憶體中進行。當排序完成時,oracle會釋放臨時段。
用到臨時段的sql語句:
create index
select ...order by
select distinct
select ...group by
select ...union
select ...intersect
select ...minus
4、回滾段
用於儲存回滾條目,oracle將資料被修改以前的版本儲存在回滾條目中,利用這些條目,使用者可以撤銷以前對資料的修改,回滾條目還可以實現讀一致性。
四、表空間
1、大檔案表空間
2、系統表空間
3、輔助表空間
4、回滾表空間
5、臨時表空間
Oracle11g表空間1 建立表空間
a.表空間是oracle資料庫中最大的邏輯儲存結構,它與作業系統中的資料檔案向對應,用於儲存資料庫中使用者建立的所有內容。b.在oracle中,表空間可以分為基本表空間 臨時表空間 大檔案表空間 非標準資料塊表空間以及撤銷表空間等。c.基本表空間一般是指使用者使用的永久性表空間,用於儲存使用者的永久...
Oracle11g建立表空間語句
在plsql工具中執行以下語句,可建立oracle表空間。分為四步 第1步 建立臨時表空間 create temporary tablespace yuhang temp tempfile d oracledata yuhang temp.dbf size 50m autoextend on nex...
Oracle11g建立表空間語句
在plsql工具中執行以下語句,可建立oracle表空間。分為四步 第1步 建立臨時表空間 create temporary tablespace yuhang temp tempfile d oracledata yuhang temp.dbf size 50m autoextend on nex...