連線模式,提高資料庫效能的捷徑

2021-08-29 18:44:23 字數 2970 閱讀 5469

一、共享伺服器模式。

共享伺服器模式,也叫做多執行緒伺服器模式。在這種模式下,oracle資料庫允許多個使用者程序共享非常少的伺服器程序。所以,可以同時實現使用者併發訪問的人數也就大大的增加。如果使用專用伺服器模式,則每個使用者連線資料庫時,每個使用者程序需要他自己的專用伺服器程序。也就是說,客戶端程序與伺服器端程序是一一對應的。

而如果採用共享伺服器模式的話,則多個使用者可以共用乙個伺服器程序,也就是說,此時客戶端程序與伺服器程序是多對一的情況。這主要是通過排程程式來實現的。排程程式將多個加入資料庫訪問會話請求指引到乙個共用佇列。伺服器程序共享池中某個閒置的共享伺服器程序依次從佇列中獲得乙個請求。也就是說,乙個很小的伺服器程序共享池可以為大量的客戶機提供服務。

共享伺服器的優缺點可以利用兩句話概括。優點是客戶端程序多對一,增加了資料庫可以支援的使用者數。缺點就是各個使用者共享乙個程序,對使用者訪問資料庫的效能有所影響。

具體的來說,在以下應用情景下,可以選擇採用共享伺服器模式。

1、 前台客戶端數量比較多。

當大量使用者需要連線到資料庫並且需要有效的使用可用的系統資源的時候,則需要考慮採用共享伺服器模式。具體的來說,像現在採用的一些客戶端/伺服器端模式的網路應用軟體,如erp系統等等。一方面因為使用者人數比較多;另一方面企業由於資金有限,所以購置的是一般的伺服器。這些伺服器由於硬體方面的一些限制,如資料庫系統與前台應用伺服器採用統一臺伺服器。所以往往要求資料庫能夠充分使用硬體資源,以減少兩者之間的衝突。

在這種情況下,往往採用共享式的伺服器模式,比較合適。

2、 伺服器記憶體限制比較大。

共享伺服器模式下,當連線使用者增加時,其記憶體使用率增加不會很多。因為他們共享乙個伺服器程序。所以,從這乙個角度講,共享伺服器模式可以減少記憶體的使用。但在專用伺服器模式下,記憶體的使用幾乎與使用者的數量成比例增加。

所以,使用者若在一些老的伺服器上部署oracle資料庫的話,因為其主機板對記憶體的公升級有所限制,所以,為了得到乙個不錯的資料庫效能,往往採用共享伺服器模式。如此,即時同時訪問資料庫的使用者有所增加,其記憶體也不會有多大的影響。可以大大的降低記憶體的壓力。

3、 某些特定功能要求採用共享伺服器模式。

雖然說,共享伺服器模式與專用伺服器模式在大部分情況下,都是通用的,支援oracle資料庫系統的大部分功能。但是,某一些特定的功能,仍然需要資料庫管理員在共享伺服器模式下,才能夠啟用。比較典型的,如oracle資料庫伺服器的連線共享、連線集中與負載均衡技術等等。他們必須在共享模式下才能夠執行。

負載均衡用來在群集環境下實現多機共享資料庫,以保證應用的高可用性。同時可以自動實現並行處理以及均分負載,還能夠實現資料庫在故障時的容錯和無斷點恢復。所以,在一些對於效能與穩定性要求比較高的應用場景中,如銀行中,往往都會採用負載均衡技術。此時,資料庫管理員在配置資料庫的時候,就需要考慮採用共享伺服器模式。

二、專用伺服器模式。

在專用伺服器模式下,資料庫伺服器要求每個使用者擁有乙個專用伺服器程序。也就是說,每個伺服器擁有乙個伺服器程序。資料庫伺服器把現有的伺服器程序地質發回客戶機,然後客戶機將連線請求重新傳送到提供的伺服器地質,與專用伺服器比較。專用伺服器模式由於客戶端與伺服器端程序是一一對應的,所以,其效能上可能會比較有優勢。但是,當使用者比較多的時候,則其對伺服器的硬體資源,特別是記憶體,會產生比較大的壓力。

若企業應用場景符合如下特徵的話,則採用專用年伺服器模式能夠取得比較好的效果。

1、 只有少數客戶端。

若連線到資料庫的使用者比較少,則專用伺服器模式是首選。如企業前台是乙個財務管理系統,則其使用的人數就會比較少。因為其往往只涉及到乙個部門。但是,其資料量會比較多。因為我們知道,對於每一筆交易都需要在財務系統中進行詳細的紀錄。所以,雖然只是財務乙個部門用,但是其紀錄量往往是其他各個部門紀錄量的總合。在紀錄量多、連線使用者又比較少的情況下,採用專用伺服器模式,可以說是比較明智的選擇。

2、 為資料倉儲搭建的資料庫系統。

資料倉儲是資料庫技術的乙個非常典型的應用。他是乙個面向主體、整合、時變、非易失的資料集和,是支援管理部門的決策過程。他跟oracle資料庫一樣,都是關係型資料庫,其中的紀錄以**的方式儲存,並且能夠用統一的結構化語言進行資料查詢。採用資料倉儲的主要目的,是為了及時完成業務處理,及時給與客戶響應。

雖然說,關聯式資料庫能夠適應大型資料庫應用的需要,但是,不能夠將其簡單的堆砌就直接成為資料倉儲來使用。因為資料倉儲主要用來處理多維資料。他儲存紀錄的方式跟普通的有所不同。資料倉儲主要通過陣列方式來儲存紀錄,即沒有統一的規律可循,也沒有統一的多維模型可循,他只恩能夠購按其所屬類別進行歸類。雖然說傳統的二維資料庫不能夠簡單的堆砌來成為資料倉儲。但是,在設計資料倉儲的時候,並不是說要完全另起爐灶,而是可以利用現有的oracle資料庫系統來處理資料,從中進行資訊的綜合,從而構造出滿足不同需要的資料倉儲。

所以,如果這個資料庫是為了實現資料倉儲而搭建的,則必須要採用專屬伺服器模式。這是oracle資料庫的強制要求。

3、 聯機事務處理系統。

聯機事務處理系統,英文簡稱為oltp。在這種應用下,採用什麼模式為好呢?這在業界,沒有統一的標準。有的說因為聯機事務處理系統使用人數比較多,應該採用共享連線伺服器模式;而有的又說聯機處理系統對於及時性要求比較高,而共享伺服器模式可能會有比較長的等待時間,所以應該採用專用連線伺服器模式。筆者是比較傾向於後面這種意見。

聯機事務處理系統,通常來說,有比較多的長事務與大事務。如使用者的某幾個操,必須作為乙個事務處理等的觀念。此時,若使用者請求數大於共享伺服器程序數的話,此時,就會發生排隊現象。假設現在有乙個共享伺服器程序正在執行乙個長事務,那麼請求佇列就需要一直等。直道這個事務完成為止。若從客戶端的角度來講,則客戶請求的響應時間就加長了。所以,當使用者的連線請求數比共享程序要多時,那麼長事務的共享連線必將會造成共享程序的排隊。事務越長,其排隊的時間也就越長,使用者響應的時間也就越長。如此惡性迴圈下去的話,很多聯機事務作業都會受到不同程度的影響。所以,若聯機事務處理系統統是符合兩個條件(使用者連線請求數大於共享程序並且其事務大部分是長事務或者大事務),則採用專用伺服器連線模式比採用共享伺服器連線模式效率要高。為了保障聯機事務處理系統正常執行,筆者建議資料庫管理員為其配置專用伺服器連線模式。

若不符合這兩個條件的乙個,則採用共享連線模式更加合理。

提高資料庫效能

一 問題的提出 在應用系統開發初期,由於開發資料庫資料比較少,對於查詢sql語句,複雜檢視的的編寫等體會不出sql語句各種寫法的效能優劣,但是如果將應用系統提交實際應用後,隨著資料庫中資料的增加,系統的響應速度就成為目前系統需要解決的最主要的問題之一。系統優化中乙個很重要的方面就是sql語句的優化。...

如何優化資料庫?提高資料庫的效能

1.對語句的優化 用程式中,保證在實現功能的基礎上,儘量減少對資料庫的訪問次數 通過搜尋引數,儘量減少對錶的訪問行數,最小化結果集,從而減輕網路負擔 能夠分開的操作盡量分開處理,提高每次的響應速度 在資料視窗使用sql時,盡量把使用 的索引放在選擇的首列 演算法的結構盡量簡單 在查詢時,不要過多地使...

提高資料庫併發效能概要

1 減少大事物操作 乙個包含很多sql語句 牽涉很多表的大事物操作鎖住的資源也會多 盡量不使用表級排他鎖,而是用行級鎖 又因為鎖一般是由資料庫根據你的 sql自動分配,所以要注意sql的寫法。比如select into b from a該操作會建立b表,並對b表加表鎖。2 與降低鎖的粒度異曲同工。2...