首先,我們來(lái)了解一下Oracle的內(nèi)存結(jié)構(gòu),如下:
關(guān)于Oracle的內(nèi)存結(jié)構(gòu),詳情請(qǐng)查看:【趙強(qiáng)老師】Oracle數(shù)據(jù)庫(kù)的內(nèi)存結(jié)構(gòu)
(一)PGA的組成結(jié)構(gòu)
PGA主要由以下三部分組成:
- 私有SQL區(qū)(Private SQL Area):私有SQL區(qū)包含了綁定變量值和運(yùn)行時(shí)期內(nèi)存結(jié)構(gòu)信息等數(shù)據(jù)。
- 游標(biāo)和SQL區(qū)(Cursors and SQL Areas):為打開(kāi)游標(biāo)和執(zhí)行SQL提供必要的資源和空間內(nèi)存
- 會(huì)話內(nèi)存(Session Memory):會(huì)話內(nèi)存是一段用于保存會(huì)話變量(如登錄信息)和其他預(yù)會(huì)話相關(guān)信息的內(nèi)存。對(duì)于共享服務(wù)器模式下,會(huì)話內(nèi)存是共享的,而不是私有的。
(二)PGA相關(guān)的數(shù)據(jù)字典
- V$PGASTAT:存儲(chǔ)著pga使用情況的一些信息,并在實(shí)例啟動(dòng)后,自動(dòng)收集pga的實(shí)用信息。
- V$PGA_TARGET_ADVICE:這個(gè)視圖是可以顯示PGA優(yōu)化建議器的估算預(yù)測(cè)結(jié)果,它顯示了在各種PGA_AGGREGATE_TARGET值時(shí),V$PGASTAT可能會(huì)顯示的PGA性能統(tǒng)計(jì)數(shù)據(jù)。
(三)PGA與連接建立的過(guò)程
如下圖所示。客戶端先從tnsnames.ora文件中獲取數(shù)據(jù)庫(kù)服務(wù)器所在的IP、端口號(hào)、使用協(xié)議、服務(wù)名等信息,然后連接到數(shù)據(jù)庫(kù)的監(jiān)聽(tīng)程序,監(jiān)聽(tīng)判斷用戶請(qǐng)求的服務(wù)名是否有效,如有效則請(qǐng)求服務(wù)器后臺(tái)進(jìn)程創(chuàng)建一個(gè)服務(wù)器進(jìn)程,并給其分配PGA,之后監(jiān)聽(tīng)將創(chuàng)建好的服務(wù)器程序的端口號(hào)和地址發(fā)送給用戶進(jìn)程,隨后用戶進(jìn)程與監(jiān)聽(tīng)的連接斷開(kāi)。用戶進(jìn)程就可以根據(jù)信息連接到服務(wù)器進(jìn)程,服務(wù)器進(jìn)程對(duì)用戶進(jìn)程進(jìn)行身份驗(yàn)證,通常是輸入賬號(hào)密碼,服務(wù)器進(jìn)程將賬號(hào)密碼與緩沖區(qū)的數(shù)據(jù)字典中的內(nèi)容進(jìn)行匹配,如匹配成功則會(huì)話建立。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。