Oracle數據庫的段是Oracle數據庫結構中的重要部分,下面就為您詳細介紹Oracle數據庫的段,希望對您能夠有所幫助。
Oracle數據庫的段
Oracle數據庫的段是對象在數據庫中占用的空間,雖然Oracle數據庫的段和數據庫對象是一一對應的,但段是從數據庫存儲的角度來看的。一個段只能屬於一個表空間,當然一個表空間可以有多個段。
表空間和數據文件是物理存儲上的一對多的關系,表空間和段是邏輯存儲上的一對多的關系,段不直接和數據文件發生關系。一個段可以屬於多個數據文件,關於段可以指定擴展到哪個數據文件上面。
Oracle數據庫的段可以分為四類:數據段、索引段、回退段、臨時段。
1.數據段
數據段是用於存儲數據的段,他存儲在數據表空間中。每一個表都有一個數據段(聚簇除外),表的數據存儲在數據段中,默認情況下段名與表名相同。以下語句查詢段的信息:
SQL>SELECT SEGMENTNAME,TABLESPACE,NAME,BYTES,BLOCKS FROM USER_EXTENTS;
2.索引段
索引段用於存儲索引,以下語句查詢索引信息:
SQL>SELECT * FROM ALL_INDEXS
SQL>SELECT * FROM USER_INDEXS
3.回退段
回退段用於存儲用戶數據修改之前的值,因而可以在特定條件下回退數據。回退段與事務是一對多的關系,一個事務只能使用一個回退段,而一個回退段可存放一個或多個事務的回退數據。
在oracle8i及之前的版本中,管理回退段是項很復雜的工作,管理員需要根據每個事務的大小和事務數量來確定、計算回退段的數量及存儲參數,在oracle9i之後,Oracle增加了undo表空間,由系統自動管理它。從此不再需要考慮對回退段的管理。參數undo_management決定數據庫使用的是回退段還是undo表空間,其值為auto表示使用undo表空間自動管理,manual表示手動管理回退段。
4.臨時段
臨時段用於order by語句的排序以及一些匯總。