成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

數(shù)據(jù)庫(kù)連接性能深度探索

數(shù)據(jù)庫(kù)
我們的數(shù)據(jù)庫(kù)操作中,創(chuàng)建數(shù)據(jù)庫(kù)連接是最消耗系統(tǒng)資源的,本文向您介紹數(shù)據(jù)庫(kù)連接的重要性和原理,并針對(duì)數(shù)據(jù)庫(kù)連接給出一些設(shè)計(jì)和效率優(yōu)化方面的建議。

當(dāng)你在設(shè)計(jì)一個(gè)數(shù)據(jù)庫(kù)應(yīng)用程序時(shí),有時(shí)你可能覺得數(shù)據(jù)庫(kù)連接類型并不重要,如果真這樣的話你就大錯(cuò)特錯(cuò)了,下面列舉出一些原因說明連接類型為什么是如此重要:

◆相對(duì)數(shù)據(jù)庫(kù)應(yīng)用程序執(zhí)行的其它任務(wù)而言,創(chuàng)建數(shù)據(jù)庫(kù)連接是最消耗系統(tǒng)資源的了

◆打開數(shù)據(jù)庫(kù)連接時(shí)在服務(wù)器端和客戶端消耗的內(nèi)存都是比較多的

◆建立一個(gè)連接時(shí)需要在服務(wù)器和客戶端之間往返多次

◆連接打開過多可能造成內(nèi)存不足,引起從內(nèi)存中換頁(yè)轉(zhuǎn)移到磁盤上換頁(yè),這樣性能就會(huì)顯著下降

◆以目前流行的架構(gòu),大多數(shù)應(yīng)用程序都是使用連接池,這樣性能會(huì)有所提升,但許多時(shí)候連接池調(diào)整不好也會(huì)引起性能顯著下降,連接池的設(shè)計(jì)、調(diào)整和監(jiān)控難度都比較大

實(shí)現(xiàn)連接的步驟如下:

◆從連接池獲得一個(gè)連接

◆按需要一次只創(chuàng)建一個(gè)連接

正確的決策主要依賴于數(shù)據(jù)庫(kù)服務(wù)器的CPU和內(nèi)存條件。

為什么連接開銷比較大?

開發(fā)人員經(jīng)常認(rèn)為建立一個(gè)數(shù)據(jù)庫(kù)是一個(gè)簡(jiǎn)單的要求,不就是在數(shù)據(jù)庫(kù)服務(wù)器和初始化用戶之間的一個(gè)網(wǎng)絡(luò)往返嗎,但實(shí)際上,一個(gè)數(shù)據(jù)庫(kù)連接在驅(qū)動(dòng)和數(shù)據(jù)庫(kù)服務(wù)器之間有多次網(wǎng)絡(luò)往返,例如,當(dāng)某個(gè)驅(qū)動(dòng)連接到Oracle或Sybase時(shí),這個(gè)連接會(huì)有7到10和網(wǎng)絡(luò)往返,執(zhí)行了一系列的動(dòng)作:

◆校驗(yàn)用戶的身份證書

◆在數(shù)據(jù)庫(kù)驅(qū)動(dòng)期望的代碼頁(yè)設(shè)置和數(shù)據(jù)庫(kù)可用的代碼頁(yè)設(shè)置之間進(jìn)行協(xié)商(如果必要的話)

◆獲取數(shù)據(jù)庫(kù)版本信息

◆確定用于通信的最理想的數(shù)據(jù)庫(kù)協(xié)議包大小

◆設(shè)置會(huì)話設(shè)置

此外,數(shù)據(jù)庫(kù)管理(開發(fā)人員承擔(dān)數(shù)據(jù)庫(kù)管理員職責(zé)時(shí)的最佳做法)系統(tǒng)要確定建立連接使用的資源,包括性能開銷較大的磁盤I/O和內(nèi)存分配,你可能會(huì)認(rèn)為將應(yīng)用程序部署到數(shù)據(jù)庫(kù)服務(wù)器上會(huì)消除網(wǎng)絡(luò)往返,在大多數(shù)情況下這并不現(xiàn)實(shí),因?yàn)楝F(xiàn)實(shí)世界中大部分企業(yè)并不會(huì)這么干,它們有很多的應(yīng)用程序,有很多的數(shù)據(jù)庫(kù),此外,數(shù)據(jù)庫(kù)服務(wù)器都會(huì)為數(shù)據(jù)庫(kù)系統(tǒng)進(jìn)行精心的性能調(diào)整,一般不會(huì)為不同的應(yīng)用程序進(jìn)行調(diào)整,即使可以在一臺(tái)機(jī)器上安裝數(shù)據(jù)庫(kù)和應(yīng)用程序,但這樣也會(huì)有單點(diǎn)故障的隱患。

使用連接池

連接池是一個(gè)和多個(gè)可重復(fù)使用的物理數(shù)據(jù)庫(kù)連接的緩存,連接池可以顯著提高性能,因?yàn)橹貜?fù)使用連接可以有效減少建立物理連接的系統(tǒng)開銷,這里必須要說明的是你的數(shù)據(jù)庫(kù)服務(wù)器必須要有足夠的內(nèi)存來管理連接池中的連接。

我們討論的重點(diǎn)是客戶端連接池(由數(shù)據(jù)庫(kù)驅(qū)動(dòng)和應(yīng)用程序服務(wù)器提供的連接池)而不是服務(wù)器端的連接池(由數(shù)據(jù)庫(kù)管理系統(tǒng)提供的連接池),有些數(shù)據(jù)庫(kù)管理系統(tǒng)提供的連接池要和客戶端連接池一起工作,雖然不同的服務(wù)器端連接池各有特色,但總體目標(biāo)都是為了消除建立和移除連接時(shí)數(shù)據(jù)庫(kù)服務(wù)器的系統(tǒng)開銷。和客戶端連接池不一樣,服務(wù)器端連接池不會(huì)優(yōu)化到應(yīng)用程序的網(wǎng)絡(luò)往返。

正如我們?cè)谇懊嫣岬降模B接到數(shù)據(jù)庫(kù)的系統(tǒng)開銷是比較大的,因?yàn)閿?shù)據(jù)庫(kù)驅(qū)動(dòng)的資源分配(在驅(qū)動(dòng)和數(shù)據(jù)庫(kù)之間的網(wǎng)絡(luò)往返)和數(shù)據(jù)庫(kù)服務(wù)器上的資源分配開銷都比較大,客戶端連接池只能解決數(shù)據(jù)庫(kù)服務(wù)器上自由分配的問題。

連接池如何工作

在連接池環(huán)境中,一旦建立了初始化物理連接,它就很可能在環(huán)境的生命周期內(nèi)都不會(huì)關(guān)閉,即當(dāng)應(yīng)用程序斷開連接后,物理連接不會(huì)關(guān)閉,相反,它仍然存在于連接池中,可以被重復(fù)使用,因此重新建立連接的速度就更快。下面對(duì)連接池如何工作做一個(gè)簡(jiǎn)單的介紹:

◆當(dāng)應(yīng)用程序或應(yīng)用程序服務(wù)器啟動(dòng)時(shí),連接池中開始進(jìn)駐連接;

◆應(yīng)用程序產(chǎn)生一個(gè)連接請(qǐng)求;

◆由驅(qū)動(dòng)或連接池管理器(依賴于你的架構(gòu))從連接池中分配一個(gè)連接給應(yīng)用程序,不用再建立新的連接,這意味著在驅(qū)動(dòng)和服務(wù)器之間不會(huì)產(chǎn)生網(wǎng)絡(luò)往返,因?yàn)槌刂械倪B接是可用的,因此連接速度就更快了;

◆應(yīng)用程序連接到數(shù)據(jù)庫(kù);

◆當(dāng)連接關(guān)閉時(shí),它被放回連接池中。

什么時(shí)候不使用連接池

有些應(yīng)用程序不適合使用連接池,如果你的應(yīng)用程序具有下列特征就不適合使用連接池,實(shí)際上,在這些應(yīng)用程序上強(qiáng)制使用連接池反而會(huì)導(dǎo)致性能下降:

◆應(yīng)用程序每天會(huì)重新啟動(dòng)多次:這通常出現(xiàn)在沒有使用應(yīng)用程序服務(wù)器的架構(gòu)中,依賴于連接池的配置,應(yīng)用程序每次啟動(dòng)時(shí)可能都會(huì)向連接池寫入一條記錄,這樣反而增加了連接池的系統(tǒng)開銷;

◆單用戶應(yīng)用程序,如報(bào)表書寫程序:如果你的應(yīng)用程序只需要為一個(gè)用戶建立一個(gè)連接,這個(gè)時(shí)候使用連接池就顯得多余了;

◆運(yùn)行單用戶批處理作業(yè)的應(yīng)用程序,如每日/周/月報(bào)告程序:連接池并不適合于批處理作業(yè)應(yīng)用程序,因?yàn)榕幚碜鳂I(yè)往往只有一個(gè)連接,而且批處理作業(yè)往往是在業(yè)務(wù)低谷期間執(zhí)行的。

當(dāng)你的應(yīng)用程序沒有使用連接池時(shí),最好不要在執(zhí)行SQL語(yǔ)句時(shí)頻繁地連接和斷開連接,因?yàn)槊看芜B接都會(huì)產(chǎn)生5-10次網(wǎng)絡(luò)請(qǐng)求。

設(shè)計(jì)連接

我們以一個(gè)實(shí)際例子來說明該如何設(shè)計(jì)數(shù)據(jù)庫(kù)連接,環(huán)境詳細(xì)情況如下:

◆環(huán)境包括的中間層必須支持20-100個(gè)并發(fā)的數(shù)據(jù)庫(kù)用戶,性能是關(guān)鍵

◆中間層和數(shù)據(jù)庫(kù)服務(wù)器上CPU和內(nèi)存都是充足的

◆數(shù)據(jù)庫(kù)是Oracle,SQL Server,Sybase或DB 2

◆應(yīng)用程序使用的API是ODBC,JDBC或ADO.NET

◆數(shù)據(jù)庫(kù)服務(wù)器有25個(gè)連接許可

下面是一些可行的解決方案:

◆解決方案1:使用連接池,最大支持20個(gè)連接,每個(gè)語(yǔ)句一個(gè)連接

◆解決方案2:使用連接池,最大支持5個(gè)連接,每5個(gè)語(yǔ)句1個(gè)連接

每5-25個(gè)語(yǔ)句使用一個(gè)連接

這個(gè)例子中最關(guān)鍵是中間層和數(shù)據(jù)庫(kù)服務(wù)器要有足夠的CPU和內(nèi)存容量,同時(shí)數(shù)據(jù)庫(kù)服務(wù)器要有足夠的許可,其它信息都與數(shù)據(jù)庫(kù)連接設(shè)計(jì)沒什么關(guān)系。

解決方案1是最佳的,它比其它兩個(gè)方案都執(zhí)行得要好,因?yàn)槊總€(gè)連接執(zhí)行一個(gè)語(yǔ)句速度更快,解決方案2和3的架構(gòu)都是多個(gè)語(yǔ)句使用一個(gè)連接,單個(gè)連接會(huì)成為瓶頸。

小結(jié)

許多因素都會(huì)影響到性能,有些可能超出了你的控制范圍,但經(jīng)過精心設(shè)計(jì)應(yīng)用程序和中間層配置,可以使性能趨于理想狀態(tài),在設(shè)計(jì)應(yīng)用程序時(shí)建議最好使用數(shù)據(jù)庫(kù)連接池或按需要一次創(chuàng)建一個(gè)連接。

 

【編輯推薦】

  1. DB2數(shù)據(jù)庫(kù)設(shè)計(jì)的三個(gè)建議
  2. NoSQL真的能終結(jié)關(guān)系數(shù)據(jù)庫(kù)?
  3. Oracle服務(wù)器參數(shù)文件維護(hù)的四個(gè)技巧
  4. 優(yōu)化SQL Server數(shù)據(jù)庫(kù)查詢技巧
  5. DB2數(shù)據(jù)庫(kù)基本操作指令30條
責(zé)任編輯:佚名 來源: IT專家網(wǎng)
相關(guān)推薦

2017-06-12 18:24:25

數(shù)據(jù)庫(kù)壓縮技術(shù)

2018-10-10 14:27:34

數(shù)據(jù)庫(kù)連接池MySQL

2023-11-17 07:16:01

2024-07-10 08:00:00

數(shù)據(jù)庫(kù)流式數(shù)據(jù)庫(kù)

2010-06-17 12:59:07

Oracle

2023-02-01 13:22:00

數(shù)據(jù)庫(kù)表連接SQL

2025-05-27 01:20:00

向量數(shù)據(jù)庫(kù)HNSWANN索引算法

2011-03-28 15:44:45

惠普數(shù)據(jù)庫(kù)Oracle數(shù)據(jù)庫(kù)

2010-05-10 15:50:39

Oracle數(shù)據(jù)庫(kù)性能

2009-09-25 13:18:15

Hibernate數(shù)據(jù)

2020-09-22 15:56:31

Java

2011-05-26 13:42:50

MFC連接MySql數(shù)據(jù)庫(kù)

2025-02-07 12:11:52

2009-03-19 10:08:09

C#數(shù)據(jù)庫(kù)查詢

2009-07-31 17:07:40

ASP.NET數(shù)據(jù)庫(kù)連

2024-03-13 10:40:00

性能探測(cè)工具SQL語(yǔ)句數(shù)據(jù)庫(kù)

2024-01-10 08:17:50

HikariCP數(shù)據(jù)庫(kù)Spring

2011-04-18 09:03:36

數(shù)據(jù)庫(kù)查詢

2011-05-20 10:30:20

ORACLE數(shù)據(jù)庫(kù)性能優(yōu)化

2011-05-18 09:39:19

Oracle數(shù)據(jù)庫(kù)性能優(yōu)化
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 日本黄色高清视频 | 成人在线精品视频 | 久草欧美视频 | 亚洲国产精品一区二区久久 | 久久综合影院 | 激情五月婷婷丁香 | 日韩国产在线 | 91五月天| 欧美日韩一区不卡 | 中文字幕在线一区二区三区 | 国产传媒毛片精品视频第一次 | 北条麻妃一区二区三区在线视频 | 亚洲国产黄 | 久久精品久久久久久 | 久久国 | 91久久久久久久久久久 | 久国产 | 欧美一级黄带 | 亚洲成人在线网 | 一区视频 | 在线观看视频91 | 91视频在线观看免费 | 亚洲成人av在线播放 | 免费成人高清在线视频 | 日韩精品一区二区三区视频播放 | 一级黄色片免费在线观看 | 中文字幕在线观看一区 | 色综合天天天天做夜夜夜夜做 | 午夜视频网站 | 亚洲成av人片在线观看 | 日韩在线一区二区三区 | 欧美日韩视频在线 | 日本色高清 | 精品在线| 日韩欧美二区 | 日本aⅴ中文字幕 | 亚洲乱码一区二区三区在线观看 | 久久中文字幕一区 | 午夜精 | 欧美极品在线视频 | 欧美日韩国产一区二区 |