oracle的邏輯結構包括表空間、段、區和資料塊
阿新 • • 發佈:2019-02-07
oracle資料庫在邏輯上是由多個表間組成的,表空間中儲存的物件叫段,比如資料段,索引段,和回退段。段由區組成,區是磁碟分配的最小單位。段的增大是通過增加區的個數來實現的。每個區的大小是資料塊大小的整數倍,區的大小可以不相同;資料塊是資料庫中最小的I/O單位,同時也是記憶體資料緩衝區的單位,及資料檔案儲存空間單位。塊的大小由引數DB_BLOCK_SIZE設定,其值應設定為作業系統塊大小的整數倍。
表空間
表空間是Oracle資料庫最大的邏輯結構,一個Oracle資料庫在邏輯上由多個表空間組成,一個表空間只隸屬於一個數據庫。Oracle中有一個稱為SYSTEM的表空間,這個表空間是在建立或安裝資料庫時自動建立的。主要用於儲存系統的資料字典,過程,函式,觸發器等;也可以儲存使用者的表,索引等。一個表空間可以有多資料檔案,但是一個數據檔案只能屬於一個表空間。
一個表空間就是一片磁碟區域,他由一個或者多個磁碟檔案組成,一個表空間可以容納許多表、索引或者簇等。每個表空間有一個預製的磁碟區域稱為初始區間(initial extent)用完這個區間後再用下一個,直到用完表空間,這時候需要對錶空間進行擴充套件,增加資料檔案或者擴大已經存在的資料檔案
段
Oracle中的段可以分成4種類型:資料段、索引段、回滾段、臨時段。
資料段用來儲存使用者的資料,每個表都有一個對應的回滾段,其名稱和資料表的名字相同。索引段用來儲存系統、使用者的索引資訊。回滾段用來儲存使用者資料修改前的值,回退段與事務是一對多的關係,一個事務只能使用一個回退段,而一個回退段可存放一個或多個事務的回退資料。臨時段用於order by語句的排序以及一些彙總。
區
區是磁碟空間分配的最小單位。磁碟按區劃分,每次至少分配一個區。區儲存於段中,它由連續的資料塊組成。區的分配過程中,每次至分配5個區。如果所剩的空閒空間不夠5個區,就會出現錯誤:ORA-01653。可以通過字典dba_tablespaces查詢表空間中區的資訊。可以通過字典user_tables查詢段中區的資訊。可以通過字典user_extents查詢區的分配狀況。我們可以通過以下SQL語句分別查詢表空間、段、區中區的分配資訊
SQL>select * from dba_tablespaces;
SQL>select table_name, tablespace_name, min_extents, max_extents from user_tables;
SQL>select * from user_extents;
資料塊
資料塊是資料中中最小的資料組織單位與管理單位,是資料檔案磁碟儲存空間單位,也是資料庫I/O 的最小單位,資料塊大小由DB_BLOCK_SIZE引數決定,不同的oracle版本DB_BLOCK_SIZE的預設值是不同的。