oracle體系結(jié)構(gòu)-內(nèi)存篇_第1頁
oracle體系結(jié)構(gòu)-內(nèi)存篇_第2頁
oracle體系結(jié)構(gòu)-內(nèi)存篇_第3頁
oracle體系結(jié)構(gòu)-內(nèi)存篇_第4頁
oracle體系結(jié)構(gòu)-內(nèi)存篇_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Oracle 體系結(jié)構(gòu)No.1 內(nèi)存結(jié)構(gòu)本章目標(biāo)了解數(shù)據(jù)庫概念了解oracle體系結(jié)構(gòu)概念理解什么是SGA理解什么是PGAOracle體系結(jié)構(gòu) - 概要數(shù)據(jù)庫是什么? 簡(jiǎn)單的說數(shù)據(jù)庫就是電子數(shù)據(jù)的文件存儲(chǔ)倉庫 數(shù)據(jù)庫是按照數(shù)據(jù)結(jié)構(gòu)來組織、存儲(chǔ)和管理數(shù)據(jù)的倉庫 用戶可以對(duì)數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行新增、刪除、更新、查詢等操作Oracle體系結(jié)構(gòu) - 概要Oracle數(shù)據(jù)庫 Oracle database 是一款關(guān)系數(shù)據(jù)庫管理系統(tǒng) 關(guān)系數(shù)據(jù)庫把一些復(fù)雜的數(shù)據(jù)結(jié)構(gòu)歸結(jié)為簡(jiǎn)單的二元關(guān)系(即二維表格形式)。例如某單位的職工關(guān)系就是一個(gè)二元關(guān)系表。工號(hào)工號(hào)姓名姓名性別性別出生年月出生年月所屬部門所屬部門所屬崗位所屬

2、崗位20110502張三男1981.3銷售部銷售經(jīng)理20140102李燕女1991.2人事部招聘專員20150502王五男1990.3銷售部銷售專員20160601馬六男1995.6銷售部實(shí)習(xí)生Oracle體系結(jié)構(gòu) - 概要Database (Storage Structures)ServerprocessPGAUserprocessInstanceMemory Structures (System Global Area) Process StructuresClientServerOracle體系結(jié)構(gòu) - 概要Oracle 數(shù)據(jù)庫服務(wù)器由一個(gè)Oracle 數(shù)據(jù)庫(靜態(tài)) 以及一個(gè)或多個(gè)or

3、acle實(shí)例(動(dòng)態(tài))組成。 實(shí)例由內(nèi)存結(jié)構(gòu)和后臺(tái)進(jìn)程構(gòu)成; 數(shù)據(jù)庫包括物理結(jié)構(gòu)和邏輯結(jié)構(gòu)。Oracle數(shù)據(jù)庫體系結(jié)構(gòu): 1、內(nèi)存結(jié)構(gòu) 2、進(jìn)程結(jié)構(gòu) 3、存儲(chǔ)結(jié)構(gòu)Oracle體系結(jié)構(gòu) - 內(nèi)存結(jié)構(gòu)Oracle DB 針對(duì)各種用途創(chuàng)建和使用內(nèi)存結(jié)構(gòu)。例如,使用內(nèi)存來存儲(chǔ)正在運(yùn)行的程序代碼、在各用戶之間共享的數(shù)據(jù)以及所連接的每個(gè)用戶的專用數(shù)據(jù)區(qū)域。一個(gè)實(shí)例有兩個(gè)關(guān)聯(lián)的基本內(nèi)存結(jié)構(gòu): 系統(tǒng)全局區(qū)(System Global Area,SGA):這些組件包含一個(gè)Oracle DB實(shí)例的數(shù)據(jù)和控制信息。SGA 由所有服務(wù)進(jìn)程和后臺(tái)進(jìn)程共享。 程序全局區(qū)(Program Global Areas,PGA):

4、包含某個(gè)服務(wù)器進(jìn)程或后臺(tái)進(jìn)程的數(shù)據(jù)及控制信息的內(nèi)存區(qū)域。PGA 是每個(gè)服務(wù)進(jìn)程和后臺(tái)進(jìn)程所私有的:即每個(gè)進(jìn)程都有一個(gè) 屬于自己的 PGA。內(nèi)存結(jié)構(gòu) - SGASGA包括 數(shù)據(jù)庫緩沖區(qū)高速緩存 (database buffer cache) 重做日志緩沖區(qū) (redo log buffer) 共享池 (shared pool) 大型池 (large pool) Java 池 (java pool) 流池 (streams pool)內(nèi)存結(jié)構(gòu) - SGA數(shù)據(jù)庫緩沖區(qū)高速緩存 (database buffer cache) 存放從數(shù)據(jù)文件讀取的數(shù)據(jù)塊的副本并行連接到實(shí)例的所有用戶共享對(duì)數(shù)據(jù)庫緩沖區(qū)高

5、速緩存的訪問,Oracle DB 用戶進(jìn)程第一次需要特定數(shù)據(jù)片段時(shí),將在數(shù)據(jù)庫緩沖區(qū)高速緩存中搜索數(shù)據(jù)。如果該進(jìn)程在高速緩存中找到數(shù)據(jù)(稱為高速緩存命中),則直接從內(nèi)存中讀取數(shù)據(jù)。如果進(jìn)程在高速緩存中找不到數(shù)據(jù)(稱為高速緩存未命中),則在訪問數(shù)據(jù)之前,必須將磁盤上的數(shù)據(jù)文件中的數(shù)據(jù)塊復(fù)制到高速緩存中的緩沖區(qū)中。高速緩存命中時(shí)訪問數(shù)據(jù)要比高速緩存未命中時(shí)訪問數(shù)據(jù)快。內(nèi)存結(jié)構(gòu) - SGA重做日志緩沖區(qū) (redo log buffer) 是SGA 中的循環(huán)緩沖區(qū),存放有關(guān)對(duì)數(shù)據(jù)庫所做更改的信息服務(wù)器進(jìn)程更改緩沖區(qū)高速緩存時(shí),系統(tǒng)會(huì)生成重做條目,并將生成的重做條目寫入SGA 中的重做日志緩沖區(qū)。重做

6、條目占用緩沖區(qū)中連續(xù)的順序空間。內(nèi)存結(jié)構(gòu) - SGA共享池 (shared pool) 包含庫高速緩存、數(shù)據(jù)字典高速緩存、并行執(zhí)行消息的緩沖區(qū)以及用于系統(tǒng)控制的各種內(nèi)存結(jié)構(gòu)。注:數(shù)據(jù)字典 數(shù)據(jù)庫是數(shù)據(jù)的集合,數(shù)據(jù)庫維護(hù)和管理這用戶的數(shù)據(jù),那么這些用戶數(shù)據(jù)表都存在哪里,用戶的信息是怎樣的,存儲(chǔ)這些用戶的數(shù)據(jù)的路徑在哪里,這些信息不屬于用戶的信息,卻是數(shù)據(jù)庫維護(hù)和管理用戶數(shù)據(jù)的核心,這些信息就是數(shù)據(jù)庫的數(shù)據(jù)字典來維護(hù)的,數(shù)據(jù)庫的數(shù)據(jù)字典就匯集了這些數(shù)據(jù)庫運(yùn)行所需要的基礎(chǔ)信息內(nèi)存結(jié)構(gòu) - SGA共享池 (shared pool) 在SQL 語句語法分析期間,Oracle DB 會(huì)頻繁訪問數(shù)據(jù)字典,因

7、此在內(nèi)存中指定了兩個(gè)特殊的位置來存放字典數(shù)據(jù)。 一個(gè)區(qū)域稱為“數(shù)據(jù)字典高速緩存”,包含數(shù)據(jù)字典表中各表、列和權(quán)限的定義 另一個(gè)用于存放字典數(shù)據(jù)的區(qū)域稱為“庫高速緩存”,包含語句文本、已進(jìn)行語法分析的代碼和執(zhí)行計(jì)劃所有Oracle DB 用戶進(jìn)程都共享這兩個(gè)高速緩存以便訪問數(shù)據(jù)字典信息。內(nèi)存結(jié)構(gòu) - SGA共享池 (shared pool) Oracle DB 使用共享SQL 區(qū)域(以及PGA 中保留的專用SQL 區(qū)域)來表示它所運(yùn)行的每個(gè)SQL 語句。共享SQL 區(qū)域包含給定SQL 語句的語法分析樹和執(zhí)行計(jì)劃, Oracle DB 可識(shí)別兩個(gè)用戶執(zhí)行相同SQL 語句的情況,從而為這些用戶重用共

8、享SQL 區(qū)域。Oracle DB 通過為多次運(yùn)行的SQL 語句使用一個(gè)共享SQL 區(qū)域來節(jié)省內(nèi)存。當(dāng)許多用戶運(yùn)行同一個(gè)應(yīng)用程序時(shí),同一SQL 語句通常會(huì)多次運(yùn)行。內(nèi)存結(jié)構(gòu) - SGA大型池 (large pool)為以下內(nèi)容提供大型內(nèi)存分配: 共享服務(wù)器的會(huì)話內(nèi)存和Oracle XA 接口 I/O 服務(wù)器進(jìn)程 Oracle DB 備份和還原操作注:XA協(xié)議是資源管理器(數(shù)據(jù)庫)與事物管理器的接口標(biāo)準(zhǔn)。Oracle、Informix、DB2和Sybase等各大數(shù)據(jù)庫廠家都提供對(duì)XA的支持內(nèi)存結(jié)構(gòu) - SGAJava 池 (java pool) 用于存儲(chǔ)在JVM中所有特定會(huì)話的Java代碼和數(shù)據(jù)

9、。內(nèi)存結(jié)構(gòu) - SGA流池 (streams pool) 流池是從10g開始才增加的一個(gè)新的SGA結(jié)構(gòu)。 流池會(huì)用于緩存流進(jìn)程在數(shù)據(jù)庫間移動(dòng)/復(fù)制數(shù)據(jù)時(shí)使用的隊(duì)列消息。注:Oracle Stream功能是為提高數(shù)據(jù)庫的高可用性而設(shè)計(jì)的Oracle Stream利用高級(jí)隊(duì)列技術(shù),通過解析歸檔日志,將歸檔日志解析成DDL及DML語句,從而實(shí)現(xiàn)數(shù)據(jù)庫之間的同步。這種技術(shù)可以將整個(gè)數(shù)據(jù)庫、數(shù)據(jù)庫中的對(duì)象復(fù)制到另一數(shù)據(jù)庫中,通過使用Stream的技術(shù),對(duì)歸檔日志的挖掘,可以在對(duì)主系統(tǒng)沒有任何壓力的情況下,實(shí)現(xiàn)對(duì)數(shù)據(jù)庫對(duì)象級(jí)甚至整個(gè)數(shù)據(jù)庫的同步。內(nèi)存結(jié)構(gòu) - PGAPGA包括: SQL工作區(qū)(SQL Wo

10、rking Areas) 會(huì)話區(qū)(User Session Data) 堆棧區(qū)(Stack Space) 游標(biāo)區(qū)(Cursor State)內(nèi)存結(jié)構(gòu) - PGASQL工作區(qū)(SQL Working Areas) 包括 排序區(qū)、多表hash連接區(qū),位圖連接區(qū),創(chuàng)建位圖區(qū) 排序區(qū):當(dāng)用戶需要對(duì)數(shù)據(jù)進(jìn)行排序時(shí),數(shù)據(jù)庫系統(tǒng)會(huì)將需要排序的數(shù)據(jù)保存到PGA程序緩存區(qū)中的排序區(qū)內(nèi),然后再在這個(gè)排序區(qū)內(nèi)對(duì)這些數(shù)據(jù)進(jìn)行排序。通常排序區(qū)的大小可以采用系統(tǒng)默認(rèn)值,但是在一些大型應(yīng)用中,可以手工調(diào)整這個(gè)排序區(qū)的大小,以提高排序的性能。內(nèi)存結(jié)構(gòu) - PGA會(huì)話區(qū)(User Session Data) 當(dāng)用戶進(jìn)程與數(shù)據(jù)庫

11、建立會(huì)話時(shí),系統(tǒng)會(huì)將這個(gè)用戶的相關(guān)權(quán)限查詢出來,然后保存在這個(gè)會(huì)話區(qū)內(nèi)。當(dāng)用戶進(jìn)程在訪問數(shù)據(jù)時(shí),系統(tǒng)就會(huì)核對(duì)會(huì)話區(qū)內(nèi)的用戶權(quán)限信息,看看其是否具有相關(guān)的訪問權(quán)限。由于系統(tǒng)將這個(gè)用戶的權(quán)限信息存放在內(nèi)存上,所以其核對(duì)用戶權(quán)限的速度非常的快。 通常情況下,會(huì)話區(qū)內(nèi)保存了會(huì)話所具有的權(quán)限、角色、性能統(tǒng)計(jì)等信息。這個(gè)會(huì)話區(qū)一般都是由數(shù)據(jù)庫進(jìn)行自我維護(hù)的,不需要人工干預(yù)。內(nèi)存結(jié)構(gòu) - PGA堆棧區(qū)(Stack Space) 保存變量信息 保存著會(huì)話變量、SQL語句運(yùn)行時(shí)的內(nèi)存結(jié)構(gòu)等重要信息注:為了提高SQL語句的重用性,會(huì)在SQL語句中使用綁定變量。簡(jiǎn)單的說,就是SQL語句可以接受用戶傳入的變量。從而用

12、戶只需要輸入不同的變量值,就可以滿足不同的查詢需求。工號(hào)工號(hào)姓名姓名性別性別出生年月出生年月所屬部門所屬部門所屬崗位所屬崗位20110502張三男1981.3銷售部銷售經(jīng)理20140102李燕女1991.2人事部招聘專員20150502王五男1990.3銷售部銷售專員20160601馬六男1995.6銷售部實(shí)習(xí)生內(nèi)存結(jié)構(gòu) - PGA游標(biāo)區(qū)(Cursor State) 游標(biāo)區(qū)是一個(gè)動(dòng)態(tài)的區(qū)域。當(dāng)用戶執(zhí)行游標(biāo)語句時(shí),系統(tǒng)就會(huì)在這個(gè)游標(biāo)區(qū)內(nèi)創(chuàng)建一個(gè)區(qū)域。當(dāng)關(guān)閉游標(biāo)時(shí),這個(gè)區(qū)域就會(huì)被釋放。注:游標(biāo)是一種臨時(shí)的數(shù)據(jù)庫對(duì)象游標(biāo)的一個(gè)常見用途就是保存查詢結(jié)果,以便以后使用。游標(biāo)的結(jié)果集是由SELECT語句產(chǎn)生,如果處理過程需要重復(fù)使用一個(gè)記錄集,那么創(chuàng)建一次游標(biāo)而重復(fù)使用若干次,比重

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論