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