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

正文內容

第3章oracledatabase的體系結構(編輯修改稿)

2025-02-03 20:15 本頁面
 

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