Oracle 11g R2 體系結構

安裝oracle軟件----建立數據庫----在數據庫中建立表----表裏存儲信息---這些表文件須要存儲在物理硬盤上面。sql

假若有一個用戶(這個用戶能夠是遠程用戶,也能夠是本地的,也能夠是一個應用程序)鏈接到oracle數據庫上面,用戶是不能直接鏈接在硬盤上存儲的數據文件,因此在oracle中要運行一個實例,實例並非保存在硬盤上面的,實例是內存的一部分,而庫和表文件是存放在硬盤上面的,用戶不能直接訪問庫裏面的數據,只能訪問實例,實例是一個特殊的內存塊,只有實例能和數據庫直接通訊,在我們的實驗環境中實例和數據庫是在同一臺機器上,咱們稱之爲單實例環境,對於用戶而言全部的操做都是在實例中完成的,oracle爲實例劃分了一個內存塊,這個內存塊咱們稱之爲SGA,其實oracle實例啓動的時候,將會分配一個SGA系統全局區並啓動一些oracle的後臺進程(守護進程)。數據庫

SGA核心組件介紹:緩存

在oracle中內存=SGA+PGA服務器

一個實例只能有一個SGA,全部的服務器進程和後臺進程都共享一個SGA微信

PGA:oracle

咱們先看一下一個select語句是如何被執行的?ide

若是hr用戶寫了一個select * from scott.emp;日誌

第一步:先作編譯,編譯包含了語法的檢查和語義的檢查。對象

第二步:若是編譯沒有問題會進入shared pool(共享池 )中,而shared pool 是由library cache和data dictionary cache(數據字典緩存)組成。Sql語句第一時間會進入librarycache中,即library cache中會存放被編譯過的正確的sql語句,僅僅是sql語句而已。library cache中沒有緩存的sql語句須要進行硬解析(即須要耗費設備的I/0資源從硬盤讀取)。假設library cache中有這個sql語句,就不須要作硬解析,接着會查 data dictionary cache。data dictionary cache中緩存了權限和對象數據及屬性,全部data dictionary cache檢查hr用戶是否對scott.emp表是否具備訪問權限,若是有權限繼續往下執行,若是沒有權限,直接給hr用戶返回一個結果。若是一條語句歷來都沒有被執行過,這條語句首先被緩存在share pool中的library cache中,下一次被執行的時候直接從share pool中取sql語句。存放sql語句也須要佔用空間,share pool的空間也是有限的,爲了防止share pool空間不夠用,採用先進先出的規則即後執行的sql語句會覆蓋先執行的sql語句來釋放空間,固然share pool的空間越大越好。blog

咱們經過企業管理器來查看share pool的相關信息
Oracle 11g R2 體系結構
Oracle 11g R2 體系結構
在sql plus中能夠用如下方式查看,圖中「0」表示自動化管理
Oracle 11g R2 體系結構
能夠從v$sgainfo中查看shared pool size

SQL> select name,bytes/1024/1024||'MB' from v$sgainfo;

Shared Pool Size

256MB

Large Pool Size

16MB

Java Pool Size

16MB

第三步:data buffer cache如今hr用戶能夠訪問scott.emp表了,databuffer cache的做用就是從磁盤或存儲中將數據塊調入內存,緩存在buffer cache中。

舉例:

用戶第一次訪問scott.emp的內容

SQL> set timing on

SQL> select * from scott.emp;第一次執行sql語句

已選擇14行。

已用時間: 00: 00: 00.05

SQL> /再次執行上一條命令所用的時間爲00: 00: 00.00

已選擇14行。

已用時間: 00: 00: 00.00

總結:buffer cache緩存數據自己,library cache緩存sql語句自己。

能夠經過show parameter db_cache_size查看buffer cache的大小
Oracle 11g R2 體系結構
第四步:redo log buffer<重作日誌緩衝區>當用戶執行insert,update,delete,create,alter等操做後,數據發生了變化,這些變化了的數據寫入數據緩衝區(buffer cache)以前,先寫入重作日誌緩衝區,同時變化以前的數據也放入重作日誌緩存中,這樣作,是爲了保證在數據恢復時oracle就知道哪些事務須要提交,哪些事務須要撤回。

若是對此文有什麼問題的話,請加下面微信一塊兒探討
Oracle 11g R2 體系結構

相關文章
相關標籤/搜索