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

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

oracle 的共享連接和專用連接方式之初探

2024-08-29 13:34:21
字體:
供稿:網(wǎng)友
       在專用連接方式中,每一個連接到數(shù)據(jù)庫服務(wù)器的客戶端請求,服務(wù)器會和客戶端之間建立起連接,這個連接用于專門處理該客戶端的所有請求,直到用戶主動斷開連接或網(wǎng)絡(luò)出現(xiàn)中斷。 在連接處于空閑時,后臺進程PMON會每隔一段時間,就會測試用戶連接狀況,假如連接已斷開,PMON會清理現(xiàn)場,釋放相關(guān)的資源。 專用連接相當(dāng)于一對一的連接,能夠快速的響應(yīng)用戶的請求。當(dāng)然,在連接的時候,首先要創(chuàng)建PGA(PRogram global area),參數(shù)pga_aggregate_target 決定可以由所有服務(wù)器進程使用的內(nèi)存的總量,參數(shù) workarea_size_policy  決定是用手動治理還是自動治理。如: 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,還有會話信息,堆棧空間。sort_area_size是用戶用來排序的內(nèi)存空間:SQL> show parameter sort_area_sizeNAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------
sort_area_size                       integer     524288    假如排序的數(shù)據(jù)量比較大,排序空間不夠用,這時Oracle通過專用算法,對數(shù)據(jù)進行分段,分段后的數(shù)據(jù)轉(zhuǎn)移到臨時表空間中,在臨時表空間中進行排序,完成后,再合在一起,返回給請求的用戶。這是大排序為什么使用臨時表空間的原因。    在專用連接中,連接所需要的資源全部在PGA中分配。該內(nèi)存區(qū)為指定連接私有,其它進程不能訪問。   專用連接采用一對一的連接方式,能很的響應(yīng)用戶的請求,但是,假如連接用戶太多時,由于要對每一個連接分配資源,因此,連接數(shù)受硬件限制比較大。為了克服這種情況,Oracle 提出了共享連接的連接方法,即用一個服務(wù)器的進程響應(yīng)多個用戶連接,與專用連接不同有連接時才創(chuàng)建PGA不同,共享連接在實例一啟動,就分配指定數(shù)量的服務(wù)器進程,所用戶的連接,以排隊的方式,由分配器指定給服務(wù)器進程,其它的進程排隊等待。只要用戶的請求一執(zhí)行完,就會馬上斷開連接,分配器會把空閑的服務(wù)器進程分配給其它排除的進程。        采用共享連接可以有效的提高服務(wù)器資源的利用率,但是對一個分配器,只支持一種協(xié)議,每個分配器有自已的排隊隊列,在請求的任務(wù)完成后,由分配器將操作結(jié)果返回給相應(yīng)的用戶進程。但是共享連接的建立, 需要Oracle的監(jiān)聽進程、分配器、共享服務(wù)器進程才能共同完成一個連接的創(chuàng)建,所以連接的分配也需要一定的時間和資源。
    在共享連接中,sort_area_size 將在 SGA 的 Large_pool 中分配。    上面所說的是兩種連接的創(chuàng)建方法和治理方法,在理想的情況下,對于長事務(wù)或大事務(wù),使用專用連接,可以有效的提高系統(tǒng)的性能,減少用戶等待和事務(wù)的排隊,提高系統(tǒng)的利用率。對于超短事務(wù)和短事務(wù)、小事務(wù),使用共享連接方式,可以在資源與效率之間達到一種平稀。比如對于OLTP 系統(tǒng),使用專用連接,而對于網(wǎng)站等,可以使用共享連接。      那么,能不能在OLTP系統(tǒng)中使用共享連接呢?假如能使用,那么,能不能提高性能呢?    OLTP系統(tǒng),一般而言,有較多的長事務(wù)和大事務(wù),如用戶的某幾步操作,必須作為一個事務(wù)。對于這種情況,我們分析一下,看看,會發(fā)生什么樣的情況:    分析首先有一個前提,那就是用戶請求數(shù)要大于共享服務(wù)器進程數(shù),否則,減去分配器治理性能支出,共享連接的性能要低于專用連接。      假如用戶請求數(shù)大于共享服務(wù)器進程數(shù),那么肯定有請求是在排隊,假定目前一個共享服務(wù)器進程正在執(zhí)行一個長事務(wù),那么請求隊列就要一直等,直到當(dāng)前的事務(wù)結(jié)束。從用戶請求的角度看,很明顯,響應(yīng)的時間加長了。從服務(wù)器角度看,我們先看一下由網(wǎng)友 WESTLIFE_XU 提供的實例:      共享連接和長事務(wù)是背道而馳的,長事務(wù)的共享連接會造成shared 進程的嚴(yán)重排隊,造成性能的嚴(yán)重下降

     給你看一個極端的例子,以前的同事公司的
代碼:

top
6191 oracle    16   0  532m 410m 408m R 14.1 40.6   1969:23 oracle
12599 oracle    15   0  533m 423m 419m S 13.2 41.8   4379:02 oracle
  458 oracle    16   0  532m 411m 409m R 12.5 40.7   1808:48 oracle
12602 oracle    16   0  532m 421m 419m R  9.7 41.7   4295:49 oracle
4007 oracle    16   0  533m 410m 408m R  9.7 40.6   1527:16 oracle
13053 oracle    16   0  532m 370m 368m R  8.5 36.6  77:44.69 oracle
13967 oracle    16   0  533m 421m 419m R  8.1 41.7   2384:56 oracle
6228 oracle    16   0  532m 408m 406m R  7.8 40.4 773:24.11 oracle
30806 oracle    16   0  533m 415m 412m R  7.5 41.0   1139:41 oracle
12595 oracle    15   0  533m  97m  96m S  4.4  9.7   1355:51 oracle
12597 oracle    15   0  533m  98m  96m S  2.2  9.7 710:42.61 oracle
12520 oracle    16   0 33388 3680 3000 S  0.3  0.4   4:21.43 tnslsnr
12583 oracle    16   0  533m 308m 306m S  0.3 30.5   6:54.57 oracle

vidb:~# ps -efgrep 6191
oracle    6191     1 13 Dec01 ?        1-08:49:28 ora_s002_SERVICE
vidb:~# ps -efgrep  12599
oracle   12599     1 13 Nov18 ?        3-00:59:09 ora_s000_SERVICE

top10的進程全部都是類似ora_s000的共享服務(wù)器進程,服務(wù)器負載在10以上

---------



      舉個例子,200個request共享比說10個共享進程,每個shared進程在一個時間內(nèi)只能處理一個request,也就是說10個進程在同一時間內(nèi)只能處理10個request,假如一個request需要很長的處理,會造成其它請求的嚴(yán)重排隊。    shared進程要求客戶端的每個request要非凡快,假如客戶端的一個request就占了很長時間,那別的request就得一直等著,共享就沒有什么意義了。    從上面可以看出,假如在有大事務(wù)和長事務(wù)的OLTP系統(tǒng)中,系統(tǒng)會比原來更慢!    綜合來看,共享連接和專用連接各有所長,要害是看應(yīng)用,能適用于自已應(yīng)用的連接方式,就是好方式。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 南澳县| 宜兰市| 宜章县| 盖州市| 南郑县| 安吉县| 南漳县| 苗栗县| 保山市| 辽宁省| 永宁县| 韩城市| 无棣县| 迁西县| 神农架林区| 凯里市| 宣化县| 乳源| 九龙坡区| 吉林省| 邵武市| 永川市| 冷水江市| 吐鲁番市| 枣强县| 盘锦市| 建昌县| 甘肃省| 巴塘县| 同德县| 大竹县| 洛浦县| 正安县| 大化| 高阳县| 岳阳市| 长寿区| 樟树市| 济阳县| 嘉定区| 新民市|