安裝oracle軟件----創(chuàng)建數(shù)據(jù)庫----在數(shù)據(jù)庫中創(chuàng)建表----表里存儲(chǔ)信息---這些表文件需要存儲(chǔ)在物理硬盤上面。
成都創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、外貿(mào)營銷網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的額敏網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
假如有一個(gè)用戶(這個(gè)用戶可以是遠(yuǎn)程用戶,也可以是本地的,也可以是一個(gè)應(yīng)用程序)連接到oracle數(shù)據(jù)庫上面,用戶是不能直接連接在硬盤上存儲(chǔ)的數(shù)據(jù)文件,所以在oracle中要運(yùn)行一個(gè)實(shí)例,實(shí)例并不是保存在硬盤上面的,實(shí)例是內(nèi)存的一部分,而庫和表文件是存放在硬盤上面的,用戶不能直接訪問庫里面的數(shù)據(jù),只能訪問實(shí)例,實(shí)例是一個(gè)特殊的內(nèi)存塊,只有實(shí)例能和數(shù)據(jù)庫直接通信,在咱們的實(shí)驗(yàn)環(huán)境中實(shí)例和數(shù)據(jù)庫是在同一臺(tái)機(jī)器上,我們稱之為單實(shí)例環(huán)境,對(duì)于用戶而言所有的操作都是在實(shí)例中完成的,oracle為實(shí)例劃分了一個(gè)內(nèi)存塊,這個(gè)內(nèi)存塊我們稱之為SGA,其實(shí)oracle實(shí)例啟動(dòng)的時(shí)候,將會(huì)分配一個(gè)SGA系統(tǒng)全局區(qū)并啟動(dòng)一些oracle的后臺(tái)進(jìn)程(守護(hù)進(jìn)程)。
SGA核心組件介紹:
在oracle中內(nèi)存=SGA+PGA
一個(gè)實(shí)例只能有一個(gè)SGA,所有的服務(wù)器進(jìn)程和后臺(tái)進(jìn)程都共享一個(gè)SGA
PGA:
我們先看一下一個(gè)select語句是如何被執(zhí)行的?
如果hr用戶寫了一個(gè)select * from scott.emp;
第一步:先做編譯,編譯包含了語法的檢查和語義的檢查。
第二步:如果編譯沒有問題會(huì)進(jìn)入shared pool(共享池 )中,而shared pool 是由library cache和data dictionary cache(數(shù)據(jù)字典緩存)組成。Sql語句第一時(shí)間會(huì)進(jìn)入librarycache中,即library cache中會(huì)存放被編譯過的正確的sql語句,僅僅是sql語句而已。library cache中沒有緩存的sql語句需要進(jìn)行硬解析(即需要耗費(fèi)設(shè)備的I/0資源從硬盤讀?。?。假設(shè)library cache中有這個(gè)sql語句,就不需要做硬解析,接著會(huì)查 data dictionary cache。data dictionary cache中緩存了權(quán)限和對(duì)象數(shù)據(jù)及屬性,所有data dictionary cache檢查hr用戶是否對(duì)scott.emp表是否具有訪問權(quán)限,如果有權(quán)限繼續(xù)往下執(zhí)行,如果沒有權(quán)限,直接給hr用戶返回一個(gè)結(jié)果。如果一條語句從來都沒有被執(zhí)行過,這條語句首先被緩存在share pool中的library cache中,下一次被執(zhí)行的時(shí)候直接從share pool中取sql語句。存放sql語句也需要占用空間,share pool的空間也是有限的,為了防止share pool空間不夠用,采用先進(jìn)先出的規(guī)則即后執(zhí)行的sql語句會(huì)覆蓋先執(zhí)行的sql語句來釋放空間,當(dāng)然share pool的空間越大越好。
我們通過企業(yè)管理器來查看share pool的相關(guān)信息
在sql plus中可以用以下方式查看,圖中“0”表示自動(dòng)化管理
可以從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現(xiàn)在hr用戶可以訪問scott.emp表了,databuffer cache的作用就是從磁盤或存儲(chǔ)中將數(shù)據(jù)塊調(diào)入內(nèi)存,緩存在buffer cache中。
舉例:
用戶第一次訪問scott.emp的內(nèi)容
SQL> set timing on
SQL> select * from scott.emp;第一次執(zhí)行sql語句
已選擇14行。
已用時(shí)間: 00: 00: 00.05
SQL> /再次執(zhí)行上一條命令所用的時(shí)間為00: 00: 00.00
已選擇14行。
已用時(shí)間: 00: 00: 00.00
總結(jié):buffer cache緩存數(shù)據(jù)本身,library cache緩存sql語句本身。
可以通過show parameter db_cache_size查看buffer cache的大小
第四步:redo log buffer<重做日志緩沖區(qū)>當(dāng)用戶執(zhí)行insert,update,delete,create,alter等操作后,數(shù)據(jù)發(fā)生了變化,這些變化了的數(shù)據(jù)寫入數(shù)據(jù)緩沖區(qū)(buffer cache)之前,先寫入重做日志緩沖區(qū),同時(shí)變化之前的數(shù)據(jù)也放入重做日志緩存中,這樣做,是為了保證在數(shù)據(jù)恢復(fù)時(shí)oracle就知道哪些事務(wù)需要提交,哪些事務(wù)需要撤回。
當(dāng)前題目:Oracle11gR2體系結(jié)構(gòu)
網(wǎng)頁URL:http://jinyejixie.com/article14/igojde.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、軟件開發(fā)、響應(yīng)式網(wǎng)站、靜態(tài)網(wǎng)站、小程序開發(fā)、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)