oracle資料庫表 段 區 塊的區別

2021-09-02 21:06:23 字數 1471 閱讀 6042

oracle的邏輯結構

包括表空間

(tablespace),段(segment),區(extent),資料塊

(data block)

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的預設值是不同的。

Oracle資料庫表空間 段 區和塊

在接觸oracle之前使用過mysql,不得不說兩種資料庫差別很大,比如oracle的表空間。好不容易終於對oracle資料庫的表空間 段 區和塊這幾個概念有乙個稍微清晰的理解了。這幾個概念都屬於邏輯結構上的,主要是oracle為了對使用者遮蔽掉底層作業系統的差異。塊是oracle資料庫處理資料最基...

Oracle資料庫表之段

一.段型別 oracle中的段 segment 是占用磁碟上儲存空間的乙個物件,不同型別的段儲存了不同的資料,管理儲存空間的方式也不相同。主要幾種段型別 2.表 用於儲存乙個表的資料,通常與索引段聯合使用。最常見的段,用於儲存表資料的。3.表分割槽 用於分割槽。4.索引 這種段型別可以儲存索引結構。...

oracle資料庫和mysql資料庫的區別

1 mysql裡用雙引號包起字串,oracle裡只可以用單引號包起字串。2 oracle是大型資料庫,而mysql是中小型資料庫。3 mysql的主鍵一般使用自動增長型別,在建立表時只要指定表的主鍵為auto increment,在插入記錄時,不需要再指定該記錄的主鍵值,主鍵將自動增長 oracle...