|
表空間是一塊邏輯磁盤空間,用來存放數(shù)據(jù)庫中的數(shù)據(jù),可以建立在裸設(shè)備、操作系統(tǒng)文件、目錄(只能在DB2數(shù)據(jù)庫系統(tǒng)中使用)上。在創(chuàng)建數(shù)據(jù)庫對象時,我們可以指定表空間,使對象中的數(shù)據(jù)只能存儲在這個表空間中,從而可以有效地控制數(shù)據(jù)的存放位置。如果不指定表空間,系統(tǒng)就自動為它設(shè)定一個表空間,該表空間一般就是缺省表空間。有關(guān)表空間的進一步描述,可以參看第4章。 裸設(shè)備是一塊物理磁盤空間,用戶不能直接訪問。對它的數(shù)據(jù)讀寫,需要通過操作系統(tǒng)底層調(diào)用。和操作系統(tǒng)文件相比,對裸設(shè)備的管理和維護不是很方便。然而也正是由于這一點,使用裸設(shè)備會更加安全、可靠,數(shù)據(jù)庫系統(tǒng)不會輕易遭到破壞。在WINDOWS平臺上,裸設(shè)備就是沒有被格式化的磁盤分區(qū)。 如果表空間使用操作系統(tǒng)文件創(chuàng)建,在讀取數(shù)據(jù)時,數(shù)據(jù)庫系統(tǒng)要將數(shù)據(jù)讀取請求交給操作系統(tǒng),由操作系統(tǒng)將文件中的數(shù)據(jù)首先讀入自己的內(nèi)存緩沖區(qū),然后再交給數(shù)據(jù)庫系統(tǒng)處理,也就是從操作系統(tǒng)的內(nèi)存緩沖區(qū)移動到數(shù)據(jù)庫系統(tǒng)使用的內(nèi)存緩沖區(qū)。在寫數(shù)據(jù)到磁盤時,數(shù)據(jù)庫系統(tǒng)首先將數(shù)據(jù)交給操作系統(tǒng),也即從數(shù)據(jù)庫系統(tǒng)的內(nèi)存緩沖區(qū)移動到操作系統(tǒng)的內(nèi)存緩沖區(qū),最后由操作系統(tǒng)完成磁盤的寫操作。 如果表空間建立在裸設(shè)備上,數(shù)據(jù)庫系統(tǒng)對磁盤中數(shù)據(jù)的讀取,就繞過操作系統(tǒng),使用操作系統(tǒng)底層調(diào)用,直接存取磁盤。和操作系統(tǒng)文件相比,對裸設(shè)備的數(shù)據(jù)讀取不需要操作系統(tǒng)的內(nèi)存數(shù)據(jù)緩沖,因此加快了I/O處理速度。
在區(qū)之間就是段概念了.段是由連接邏輯上連續(xù)區(qū)組成的。段才是真正存儲數(shù)據(jù)的邏輯單元??梢赃@么說Oracle 塊是操作系統(tǒng)存儲單元一個抽像,而區(qū)呢?區(qū)應該是在數(shù)據(jù)塊基礎(chǔ)進行進一步抽像的結(jié)果,而種抽像之后,完全應該完成了存儲數(shù)據(jù)的劃分。至于段呢完全是抽像概念進行實體化一種手段。下面我們將看到段類型概念:數(shù)據(jù)段、索引段、臨時段、永久段. 1. 數(shù)據(jù)段:每個非聚簇表都存儲都有一個數(shù)據(jù)段,表中所有數(shù)據(jù)都存儲在數(shù)據(jù)段的區(qū)之中.例如分區(qū)表,每一個分區(qū)都有一個分區(qū)段。 2. 索引段:每一個索引都有一個索引段用來存儲索引的數(shù)據(jù)。例如每一個分區(qū)索引都有一個分區(qū)索引。 3. 臨時段:當oracle運行SQL需要一個臨時段來完成一個操作的時候,就是臨時段就會自動被創(chuàng)建。當操作完成時候,一個臨時都會被返回給Oracle心以備給其它用戶使用。 4. 回滾段:如果數(shù)據(jù)庫運行自動回滾段管理方式時候,這個時候Oracle服務就會使用回滾表空間來管理回滾段。Oracle建議采用自動回滾管理的方式進行回滾段管理。在早些Oracle版本中,Oracle利回滾段來保存回信息。 |
|
|