freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

第3章oracledatabase的體系結(jié)構(gòu)(編輯修改稿)

2025-02-03 20:15 本頁面
 

【文章內(nèi)容簡介】 務時,回滾段中的數(shù)據(jù)將變?yōu)闊o效,這時用戶將無法回滾該事務。在數(shù)據(jù)庫中可以創(chuàng)建多個回滾段。當用戶執(zhí)行 DML操作時,數(shù)據(jù)庫服務器將自動為當前事務指定一個回滾段,用戶也可以通過命令指定過一個回滾段。在創(chuàng)建數(shù)據(jù)庫時,系統(tǒng)在 SYSTEM表空間中自動創(chuàng)建一個 SYSTEM回滾段, SYSTEM回滾段用于維護 Oracle內(nèi)部的事務。數(shù)據(jù)庫管理員可以通過命令創(chuàng)建其它的回滾段。 17 3. 區(qū) 區(qū)是 Oracle分配存儲空間的最小單位,一個段由多個區(qū)組成,一個區(qū)由若干個連續(xù)的數(shù)據(jù)塊組成。區(qū)的大小是數(shù)據(jù)塊大小的整數(shù)倍。當在數(shù)據(jù)庫中創(chuàng)建帶有實際存儲結(jié)構(gòu)的方案對象時, Oracle將為該對象分配若干個區(qū),以便組成一個對應的段來為該方案對象提供初始的存儲空間。當段中已分配的區(qū)都寫滿后, Oracle就為該段分配一個新區(qū),以容納更多的數(shù)據(jù)。 4. 數(shù)據(jù)塊 數(shù)據(jù)塊是 Oracle中的最小存儲單位,也是數(shù)據(jù)庫服務器讀寫數(shù)據(jù)的最小邏輯單位。同時數(shù)據(jù)塊還是執(zhí)行輸入輸出操作的最小單位。操作系統(tǒng)執(zhí)行輸入輸出操作的最小單位是操作系統(tǒng)塊。數(shù)據(jù)庫的數(shù)據(jù)最終是存儲在硬盤上的,所以數(shù)據(jù)塊與操作系統(tǒng)中的塊有著一定的聯(lián)系。一個數(shù)據(jù)塊由若干個操作系統(tǒng)塊組成,它的大小是操作系統(tǒng)塊的整數(shù)倍。 在數(shù)據(jù)塊中可以存儲各種類型的數(shù)據(jù),如表數(shù)據(jù)、索引數(shù)據(jù)等。每個數(shù)據(jù)塊的基本格式是一樣的,如圖 35所示。 行數(shù)據(jù) 空閑空間 行目錄 表目錄 塊頭部 圖 35 數(shù)據(jù)塊的格式 18 ? 塊頭部 ( header/Common and Variable): 包含數(shù)據(jù)塊的基本信息,如塊的物理地址、塊所在段的類型等。 ? 表目錄 ( Table Directory): 存放表的信息。如果一些表的數(shù)據(jù)被存放在該塊中,那么這些表的相關(guān)信息將被存放在表目錄中。 ? 行目錄 ( Row Directory): 存放了此塊中行數(shù)據(jù)的基本信息,如行的地址等。 ? 空閑空間 ( Free Space): 一個塊中未使用的區(qū)域,可用于新行的插入和已經(jīng)存在的行的更新。 ? 行數(shù)據(jù) ( Row Data): 是真正存放表數(shù)據(jù)和索引數(shù)據(jù)的地方。該空間是已被數(shù)據(jù)行占用的空間。 ? 頭部信息區(qū) ( Overhead): 塊頭部、表目錄和行目錄這三部分合稱為頭部信息區(qū)。它不存放數(shù)據(jù),存放整個塊的信息,起到引導系統(tǒng)讀取數(shù)據(jù)的作用。頭部信息區(qū)一旦被損壞,整個數(shù)據(jù)塊將失效,數(shù)據(jù)塊中存儲的數(shù)據(jù)將丟失。 數(shù)據(jù)塊的標準大小由初始化參數(shù) DB_BLOCK_SIZE指定。數(shù)據(jù)塊的總?cè)萘繉嶋H就是空間空間和行數(shù)據(jù)的容量的總和。 19 數(shù)據(jù)庫實例 對數(shù)據(jù)庫的訪問是一個動態(tài)的過程,必須通過數(shù)據(jù)庫服務器來進行。數(shù)據(jù)庫服務器不僅包括數(shù)據(jù)文件,還包括一組用來訪問數(shù)據(jù)文件的內(nèi)存結(jié)構(gòu)和后臺進程。這些內(nèi)存結(jié)構(gòu)和后臺進程稱之為實例。實例 Oracle體系結(jié)構(gòu)中最重要的概念,本節(jié)重點闡述實例,關(guān)于實例的內(nèi)部存儲結(jié)構(gòu)和后臺進程結(jié)構(gòu)將在下一節(jié)介紹。 Oracle數(shù)據(jù)庫系統(tǒng)指具有管理 Oracle數(shù)據(jù)庫功能的計算機系統(tǒng)。每一個運行的 Oracle數(shù)據(jù)庫都對應一個 Oracle實例( Instance),一個 Oracle實例為存取和控制數(shù)據(jù)庫的軟件機制。當數(shù)據(jù)庫服務器上的一個數(shù)據(jù)庫啟動時,Oracle將分配一塊內(nèi)存區(qū)間,叫做系統(tǒng)全局區(qū)( SGA),并啟動一個或多個 Oracle進程。因此實例是一組內(nèi)存結(jié)構(gòu)和后臺進程的集合。 20 用戶訪問數(shù)據(jù)庫的操作是通過實例來完成的。實例通過后臺進程與數(shù)據(jù)庫中的文件進行交互,將用戶修改過得或新增加的數(shù)據(jù)寫入文件,而用戶對數(shù)據(jù)的所有訪問都是在實例的內(nèi)存結(jié)構(gòu)中進行的。數(shù)據(jù)位于內(nèi)存中,用戶讀寫內(nèi)存的速度要比直接讀寫磁盤快得多,而且內(nèi)存中的數(shù)據(jù)可以在多個用戶之間共享,故引入實例在某個方面可以提高數(shù)據(jù)訪問的并發(fā)性。 當數(shù)據(jù)庫服務器啟動時,首先啟動實例,然后加載并打開數(shù)據(jù)庫。當用戶訪問數(shù)據(jù)庫時,數(shù)據(jù)庫服務器便為用戶進程啟動一個服務器進程,負責處理用戶進程的所有請求,例如將用戶訪問的數(shù)據(jù)從數(shù)據(jù)文件讀到內(nèi)存中。只有數(shù)據(jù)庫管理員才能啟動實例,并打開數(shù)據(jù)庫。數(shù)據(jù)庫被打開后,數(shù)據(jù)庫管理員可以將數(shù)據(jù)庫關(guān)閉,此時用戶就無法訪問數(shù)據(jù)庫中的數(shù)據(jù)。 為了區(qū)分不同的實例,每個實例都有一個系統(tǒng)標識符 SID,通常 SID與數(shù)據(jù)庫同名。每個服務器進程的命名也與 SID相匹配。 內(nèi)存結(jié)構(gòu) 內(nèi)存結(jié)構(gòu)是 Oracle數(shù)據(jù)庫體系結(jié)構(gòu)中最為重要的部分之一,內(nèi)存也是影響數(shù)據(jù)庫性能的主要因素。在 Oracle數(shù)據(jù)庫中,服務器內(nèi)存的大小將直接影響數(shù)據(jù)庫的運行速度,特別是多個用戶連接數(shù)據(jù)庫時,服務器必須有足夠的內(nèi)存支持,否則有的用戶可能連接不到服務器,或查詢速度明顯下降。 21 當實例啟動時,系統(tǒng)為實例分配了一段內(nèi)存空間,并啟動若干后臺進程。內(nèi)存空間分成不同的部分,分別用來存儲不同的信息,具體如下: ? 程序代碼。 ? 連接會話的信息。 ? 進程通信和共享的相關(guān)信息。 ? 程序運行過程中的信息(例如當前查詢的狀態(tài)等)。 ? 緩沖區(qū)中的數(shù)據(jù),如用戶要訪問的數(shù)據(jù)、重做日志等。這部分也叫做 SGA。 當用戶發(fā)出一條 SQL語句時,首先由服務器進程對用戶的 SQL語句進行語法分析并執(zhí)行,然后將數(shù)據(jù)從數(shù)據(jù)文件讀入到系統(tǒng)的數(shù)據(jù)緩存區(qū),修改后的數(shù)據(jù)由服務器進程寫回到數(shù)據(jù)文件中。按照系統(tǒng)對于內(nèi)存的使用方法不同,Oracle數(shù)據(jù)庫的內(nèi)存可以分為系統(tǒng)全局區(qū) ( SGA) 和程序全局區(qū) ( PGA)。 22 Oracle具有下列基本的內(nèi)存結(jié)構(gòu): ? 軟件代碼區(qū) ? 系統(tǒng)全局區(qū),包括數(shù)據(jù)庫緩沖存儲區(qū)、日志緩沖區(qū)和共享池 ? 程序全局區(qū),包括棧區(qū)和數(shù)據(jù)區(qū) ? 排序區(qū) 其中軟件代碼區(qū)用于存儲正在執(zhí)行的或可以執(zhí)行的程序代碼。軟件區(qū)是只讀,可安裝成共享或非共享。 Oracle系統(tǒng)程序是可共享的,以致多個 ORACLE用戶可存取它,而不需要在內(nèi)存有多個副本。用戶程序可以共享也可以不共享。 排序需要內(nèi)存空間, ORACLE利用該內(nèi)存排序數(shù)據(jù),這部分空間稱為排序區(qū)。排序區(qū)存在于請求排序的用戶進程的內(nèi)存中,該空間的大小為適就排序數(shù)據(jù)量的大小,可增長,但受初始化參數(shù)SORT_AREA_SIZER限制。 Oracle的內(nèi)存結(jié)構(gòu)圖如圖 36所示。 數(shù)據(jù)庫緩沖區(qū) 高速緩存 重做日志 緩沖區(qū) 共享池 J a v a 池 大池 S GA 服務器進程 1 PGA 服務器進程 n 后臺 進程 O r a c l e 進程 ? ? ? 圖 36 Oracle的內(nèi)存結(jié)構(gòu) 23 系統(tǒng)全局區(qū)( SGA) 在計算機的內(nèi)存中不僅要存儲數(shù)據(jù)庫中的數(shù)據(jù),還要存儲數(shù)據(jù)字典的信息、重做日志以及經(jīng)過解析的 SQL代碼等。實例中的這部分內(nèi)存結(jié)構(gòu)叫做系統(tǒng)全局區(qū) (SGA,System Global Area)。 SGA是實例中最重要的組成部分,一個實例只有一個 SGA。 SGA中的數(shù)據(jù)可以在多個用戶進程之間共享。 SGA由若干個緩存和緩沖池組成,不同類型的數(shù)據(jù)存儲在不同的緩存和緩沖池中。 SGA包含以下幾個數(shù)據(jù)結(jié)構(gòu)。 1. 數(shù)據(jù)庫緩沖區(qū)高速緩存 數(shù)據(jù)庫緩沖區(qū)高速緩存用于存儲用戶最近使用過的數(shù)據(jù)。當用戶檢索時,數(shù)據(jù)庫內(nèi)的數(shù)據(jù)先讀取到該區(qū)域,然后再經(jīng)過處理后返回給用戶。在修改時,被修改的數(shù)據(jù)先被存儲在數(shù)據(jù)庫緩沖區(qū)內(nèi),而不是馬上寫入磁盤(該數(shù)據(jù)塊稱為臟緩存塊)。只有當它達到一定量或滿足一定條件后, Oracle才將它們寫入磁盤。這樣可以減少磁盤讀寫次數(shù),提高系統(tǒng)的存取效率,改善系統(tǒng)性能。通常,緩沖區(qū)高速緩存是 SGA的最大組成部分。 24 2. 重做日志緩沖區(qū) 重做日志是對用戶事務所產(chǎn)生的記錄,通過重做日志能夠重新產(chǎn)生數(shù)據(jù),它
點擊復制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1