久久精品水蜜桃av综合天堂,久久精品丝袜高跟鞋,精品国产肉丝袜久久,国产一区二区三区色噜噜,黑人video粗暴亚裔

ASP認(rèn)識(shí)和優(yōu)化connection對象

來自站長百科
跳轉(zhuǎn)至: 導(dǎo)航、? 搜索

在這個(gè)數(shù)據(jù)庫連接中。我們使用了session對象,首先,建立一個(gè)conn的連接對象,然后連接到數(shù)據(jù)庫data.mdb中,取得連接句柄后,把它保存在session("conn")這個(gè)session會(huì)話變量中,在打開記錄集前,從session("conn")中取出句柄,借助于session對象。我們可以使不同的ASP頁面共用一個(gè)連接對象,減少了對服務(wù)器內(nèi)存的開銷,而我們也不需要擔(dān)心,當(dāng)一個(gè)客戶因?yàn)殄e(cuò)誤操作導(dǎo)致服務(wù)器不能析放該被占用的session連接對象,因?yàn)槲覀冎烂總€(gè)客戶的session對象是有一定的生存期限的,過了這個(gè)期限,服務(wù)器就會(huì)自動(dòng)把它析放掉。
在ASP的數(shù)據(jù)庫編程中,connection對象是我們不可能離開的一個(gè)對象,在對數(shù)據(jù)庫進(jìn)行任何的操作,比如更新記錄,插入,刪除,檢索等,都必須借助于connection對象來完成。形象地來說,connection對象就是程序于數(shù)據(jù)庫溝通的管道,所有對數(shù)據(jù)庫的操作,都必須經(jīng)過它,因此,無論我們以何種方式連接數(shù)據(jù)庫前,總是少不了執(zhí)行下列的代碼。
   Set conn = Server.CreateObject("ADODB.Connection")
   建立一個(gè)connection對象的實(shí)例變量,然后在它的基礎(chǔ)上建立recorderset對象或是command對象來操作數(shù)據(jù)庫。既然connection對象是如此的重要,那么如何優(yōu)化和管理好connection對象對數(shù)據(jù)庫程序來說是極其重要的,它關(guān)系到程序的性能。
   每當(dāng)一個(gè)客戶執(zhí)行數(shù)據(jù)庫操作時(shí),就需要借助一個(gè)connection對象,而每個(gè)connection對象就會(huì)占用服務(wù)器的一部分資源,而數(shù)據(jù)庫的同時(shí)連接數(shù)不可能是無限的,因此。在考濾要提供高性能的數(shù)據(jù)庫web程序時(shí),我們需要考濾如何去減少服務(wù)器的開銷。一般來說。每個(gè)asp頁面中建立一個(gè)connection對象,都會(huì)在服務(wù)器中產(chǎn)生一個(gè)對數(shù)據(jù)庫的連接。而不同的頁面的connection對象是不能共享的。那么。我們可不可以使同一個(gè)用戶所訪問的不同頁面共享一個(gè)connection連接通道呢。
   大家不妨想一想我們的asp六大內(nèi)建對象的session對象,他可以為某個(gè)特定的用戶來保存私有的數(shù)據(jù),如果我們把connection對象保存在session對象中,是否可以使不同的asp頁面都使用同一個(gè)連接通道呢?看看下面的這段程序。


$#@60;%

Set conn = Server.CreateObject("ADODB.Connection")
DBPath = Server.MapPath("/")&"/news/data/data.mdb"
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath
session("conn")=conn
Set rs = Server.CreateObject("ADODB.Recordset")
sql="select * from data"
cn=session("conn")
rs.open sql,cn,3,2

%$#@62;
d width="100%">


  在這個(gè)數(shù)據(jù)庫連接中。我們使用了session對象,首先,建立一個(gè)conn的連接對象,然后連接到數(shù)據(jù)庫data.mdb中,取得連接句柄后,把它保存在session("conn")這個(gè)session會(huì)話變量中,在打開記錄集前,從session("conn")中取出句柄,借助于session對象。我們可以使不同的ASP頁面共用一個(gè)連接對象,減少了對服務(wù)器內(nèi)存的開銷,而我們也不需要擔(dān)心,當(dāng)一個(gè)客戶因?yàn)殄e(cuò)誤操作導(dǎo)致服務(wù)器不能析放該被占用的session連接對象,因?yàn)槲覀冎烂總€(gè)客戶的session對象是有一定的生存期限的,過了這個(gè)期限,服務(wù)器就會(huì)自動(dòng)把它析放掉。
   而ODBC3.0所提供的連接池connection pooling。也能有效地提高數(shù)據(jù)庫的運(yùn)行性能。我們知道,在眾多的asp頁面中生成的connection對象,總是處在不斷建立連接,解除連接,析放連接中。
   如何能高效的管理和使用好這些被廢棄的連接,也可以在一定程序上大大提高運(yùn)行效率。而ODBC3.0則提供了這樣的功能,它能聰明的把需要新建立的連接引導(dǎo)至即將廢棄的connection對象上,反復(fù)地使用它。這樣,就能節(jié)省了不好服務(wù)器的開銷。