Oracle段的概念總結(原創)

2021-08-31 05:54:50 字數 2126 閱讀 2028

段概述

段(segment)由一組資料擴充套件(extent)構成,其中儲存了表空間內各種邏輯儲存結構的資料。例如,oracle能為每個表的資料段(data segment)分配資料擴充套件,還能為每個索引的索引段(index segment)分配資料擴充套件。

資料段簡介

在oracle資料庫中,乙個資料段可以供以下方案物件(或方案物件的一部分)容納資料:

1、非分割槽表或非簇表

2、分割槽表的乙個分割槽

3、乙個簇表

當使用者使用create

語句建立表或簇表時,oracle建立相應的資料段。表或簇表的儲存參 數(storage parameter)用來決定對應資料段的資料擴充套件如何被分配。使用者可以使用create

或alter語句直接設定這些儲存引數。這些引數將會影響與方案物件(object)相關的資料段的儲存與訪問效率。

索引段

oracle 資料庫中每個非分割槽索引(nonpartitioned index)使用乙個索引段(index segment)來容納其資料。而對於分割槽索引(partitioned index),每個分割槽使用乙個索引段來容納其資料。

使用者可以使用create index語句為索引或索引的分割槽建立索引段。在建立語句中,使用者可以設定索引段的資料擴充套件(extent)的儲存引數(storage parameter)以及此索引段應儲存在哪個表空間中。(表的資料段和與其相關的索引段不一定要儲存在同一表空間中。)索引段的儲存引數將會影響資料的儲存與訪問效率。

臨時段簡介

當oracle處理乙個查詢時,經常需要為sql語句的解析與執行的中間結果(intermediate stage)準備臨時空間。oracle會自動地分配被稱為臨時段(temporary segment)的磁碟空間。例如,oracle在進行排序操作時就需要使用臨時段。當排序操作可以在記憶體中執行,或oracle設法利用索引就執行時,就不必建立臨時段。

需要使用臨時段的操作:

1、create index

2、select ... order by

3、select distinct ...

4、select ... group by

5、select . . . union

6、select ... intersect

7、select ... minus

有些不能使用索引的關聯操作(unindexed join),或者需要在子查詢間建立相互關係(correlated subqueries),也可能需要使用臨時段(temporary segment)。所以當查詢包含distinct ,group by ,或 order by 子句時,oracle有可能使用兩個臨時段。

臨時表及索引使用的臨時段

oracle可以為臨時表及其索引分配臨時段。臨時表中的資料只在會話或事務的執行期內存在。

臨時段如何被分配

oracle為查詢(query)與臨時表(temporary table)分配臨時段(temporary segment)的過程是不同的。

為查下分配臨時段

在使用者會話(session)期間,如果使用者需要,oracle可以在使用者的臨時表空間內為使用者建立臨時段。管理員可以使用create user 或 alter user 語句中的 temporary tablespace 子句指定使用者預設使用的臨時表空間 。

tips:使用者預設使用的永久表空間(permanent tablespace) 也可以同時被設定為(temporary tablespace)。

在字典管理模式下的表空間,如果沒有為使用者指定臨時表空間,那麼預設的臨時表空間為 system 。同時在$oracle_base/admin/bdump/alert.log下會有相關的報錯資訊。臨時表空間的預設儲存引數決定了臨時段的資料擴充套件如何分配。在語句結束時oracle負責移除臨時段

因為臨時段的分配與**經常發生,所以有必要為建立臨時段準備乙個專用的表空間。這樣可以分流磁碟裝置的i/o,也可以減少由於在 system 或其他表空間內頻繁建立臨時段而造成的碎片。

參考至:oracle concepts  (10g r2)

如有錯誤,歡迎指正

Oracle 備份 恢復概念的總結

oracle 備份恢復概念 資料庫維護中,備份或恢復是重中之重的問題。儘管很多時候資料庫系統執行緩慢,但對資料庫資料的丟失而言,顯然後者損失的代價是 不言而喻的。因此dba至少在保證資料不丟失的情況下來提高系統的效能是最起碼的要求。關於什麼是備份與恢復,在此不做贅言。一 物理備份與邏輯備份 物理備份...

原創 Oracle天大的Bug

任何發現都需要痛苦的經理,而我就是被這樣折磨後發現了這個bug 可執行檔案在開發的時候好好的,隨便怎樣都能執行 可當我把它考到別的目錄下,它始終連不上資料庫 我的開發工具是delphi5,資料庫是oracle9i 它報的errorcode為06421。從網上搜尋了好久也沒有找到任何答案.只找到了很多...

原創 oracle的歸檔模式

一。檢視oracle資料庫是否為歸檔模式 1.select name,log mode from v database name log mode query noarchivelog 2.使用archive log list 命令 database log mode no archive mode...