国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > Oracle > 正文

Oracle數(shù)據(jù)庫共享連接和專用連接方式比較

2024-08-29 13:52:32
字體:
供稿:網(wǎng)友
在專用連接方式中,每一個(gè)連接到數(shù)據(jù)庫服務(wù)器的客戶端請(qǐng)求,服務(wù)器會(huì)和客戶端之間建立起連接,這個(gè)連接用于專門處理該客戶端的所有請(qǐng)求,直到用戶主動(dòng)斷開連接或網(wǎng)絡(luò)出現(xiàn)中斷。在連接處于空閑時(shí),后臺(tái)進(jìn)程PMON會(huì)每隔一段時(shí)間,就會(huì)測(cè)試用戶連接狀況,如果連接已斷開,PMON會(huì)清理現(xiàn)場(chǎng),釋放相關(guān)的資源。 專用連接相當(dāng)于一對(duì)一的連接,能夠快速的響應(yīng)用戶的請(qǐng)求。當(dāng)然,在連接的時(shí)候,首先要?jiǎng)?chuàng)建PGA(PRogram global area),參數(shù)pga_aggregate_target 決定可以由所有服務(wù)器進(jìn)程使用的內(nèi)存的總量,參數(shù)workarea_size_policy 決定是用手動(dòng)管理還是自動(dòng)管理。如:

SQL> show parameter pga_aggregate_targetNAME                                 TYPE        VALUE------------------------------------ ----------- --------pga_aggregate_target                 big integer 10485760SQL> show parameter workarea_size_policyNAME                                 TYPE        VALUE------------------------------------ ----------- ------workarea_size_policy                 string      AUTO

而Pga由三部分構(gòu)成,其中有可以配置的 sort_area_size,還有會(huì)話信息,堆棧空間。

sort_area_size是用戶用來排序的內(nèi)存空間:

SQL> show parameter sort_area_sizeNAME                                 TYPE        VALUE------------------------------------ ----------- ------sort_area_size                       integer     524288

如果排序的數(shù)據(jù)量比較大,排序空間不夠用,這時(shí)Oracle通過專用算法,對(duì)數(shù)據(jù)進(jìn)行分段,分段后的數(shù)據(jù)轉(zhuǎn)移到臨時(shí)表空間中,在臨時(shí)表空間中進(jìn)行排序,完成后,再合在一起,返回給請(qǐng)求的用戶。這是大排序?yàn)槭裁词褂门R時(shí)表空間的原因。

在專用連接中,連接所需要的資源全部在PGA中分配。該內(nèi)存區(qū)為指定連接私有,其它進(jìn)程不能訪問。

專用連接采用一對(duì)一的連接方式,能很的響應(yīng)用戶的請(qǐng)求,但是,如果連接用戶太多時(shí),由于要對(duì)每一個(gè)連接分配資源,因此,連接數(shù)受硬件限制比較大。為了克服這種情況,Oracle 提出了共享連接的連接方法,即用一個(gè)服務(wù)器的進(jìn)程響應(yīng)多個(gè)用戶連接,與專用連接不同有連接時(shí)才創(chuàng)建PGA不同,共享連接在實(shí)例一啟動(dòng),就分配指定數(shù)量的服務(wù)器進(jìn)程,所用戶的連接,以排隊(duì)的方式,由分配器指定給服務(wù)器進(jìn)程,其它的進(jìn)程排隊(duì)等待。只要用戶的請(qǐng)求一執(zhí)行完,就會(huì)馬上斷開連接,分配器會(huì)把空閑的服務(wù)器進(jìn)程分配給其它排除的進(jìn)程。

采用共享連接可以有效的提高服務(wù)器資源的利用率,但是對(duì)一個(gè)分配器,只支持一種協(xié)議,每個(gè)分配器有自已的排隊(duì)隊(duì)列,在請(qǐng)求的任務(wù)完成后,由分配器將操作結(jié)果返回給相應(yīng)的用戶進(jìn)程。但是共享連接的建立, 需要Oracle的監(jiān)聽進(jìn)程、分配器、共享服務(wù)器進(jìn)程才能共同完成一個(gè)連接的創(chuàng)建,所以連接的分配也需要一定的時(shí)間和資源。

在共享連接中,sort_area_size 將在 SGA 的 Large_pool 中分配。

上面所說的是兩種連接的創(chuàng)建方法和管理方法,在理想的情況下,對(duì)于長(zhǎng)事務(wù)或大事務(wù),使用專用連接,可以有效的提高系統(tǒng)的性能,減少用戶等待和事務(wù)的排隊(duì),提高系統(tǒng)的利用率。對(duì)于超短事務(wù)和短事務(wù)、小事務(wù),使用共享連接方式,可以在資源與效率之間達(dá)到一種平稀。比如對(duì)于OLTP 系統(tǒng),使用專用連接,而對(duì)于網(wǎng)站等,可以使用共享連接。

那么,能不能在OLTP系統(tǒng)中使用共享連接呢?如果能使用,那么,能不能提高性能呢?

OLTP系統(tǒng),一般而言,有較多的長(zhǎng)事務(wù)和大事務(wù),如用戶的某幾步操作,必須作為一個(gè)事務(wù)。對(duì)于這種情況,我們分析一下,看看,會(huì)發(fā)生什么樣的情況:

分析首先有一個(gè)前提,那就是用戶請(qǐng)求數(shù)要大于共享服務(wù)器進(jìn)程數(shù),否則,減去分配器管理性能支出,共享連接的性能要低于專用連接。

如果用戶請(qǐng)求數(shù)大于共享服務(wù)器進(jìn)程數(shù),那么肯定有請(qǐng)求是在排隊(duì),假定目前一個(gè)共享服務(wù)器進(jìn)程正在執(zhí)行一個(gè)長(zhǎng)事務(wù),那么請(qǐng)求隊(duì)列就要一直等,直到當(dāng)前的事務(wù)結(jié)束。從用戶請(qǐng)求的角度看,很明顯,響應(yīng)的時(shí)間加長(zhǎng)了。從服務(wù)器角度看,我們先看一下由網(wǎng)友 WESTLIFE_XU 提供的實(shí)例:

共享連接和長(zhǎng)事務(wù)是背道而馳的,長(zhǎng)事務(wù)的共享連接會(huì)造成shared 進(jìn)程的嚴(yán)重排隊(duì),造成性能的嚴(yán)重下降,給你看一個(gè)極端的例子,以前的同事公司的。

代碼:

舉個(gè)例子,200個(gè)request共享比說10個(gè)共享進(jìn)程,每個(gè)shared進(jìn)程在一個(gè)時(shí)間內(nèi)只能處理一個(gè)request,也就是說10個(gè)進(jìn)程在同一時(shí)間內(nèi)只能處理10個(gè)request,如果一個(gè)request需要很長(zhǎng)的處理,會(huì)造成其它請(qǐng)求的嚴(yán)重排隊(duì)。

shared進(jìn)程要求客戶端的每個(gè)request要特別快,如果客戶端的一個(gè)request就占了很長(zhǎng)時(shí)間,那別的request就得一直等著,共享就沒有什么意義了。

從上面可以看出,如果在有大事務(wù)和長(zhǎng)事務(wù)的OLTP系統(tǒng)中,系統(tǒng)會(huì)比原來更慢!

綜合來看,共享連接和專用連接各有所長(zhǎng),關(guān)鍵是看應(yīng)用,能適用于自已應(yīng)用的連接方式,就是好方式。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 凤翔县| 云阳县| 和硕县| 和政县| 湖州市| 新乐市| 板桥市| 福鼎市| 阿坝县| 克山县| 聊城市| 康乐县| 连山| 化隆| 出国| 防城港市| 印江| 铁力市| 青铜峡市| 许昌市| 嵩明县| 建昌县| 扶沟县| 界首市| 大同市| 霍邱县| 新田县| 措勤县| 旅游| 英德市| 寿阳县| 海兴县| 克拉玛依市| 资源县| 大庆市| 枞阳县| 永顺县| 内乡县| 慈溪市| 慈溪市| 永胜县|