認識和最佳化connection對象

來源:互聯網
上載者:User
connection|對象|最佳化     在這個資料庫連接中。我們使用了session對象,首先,建立一個conn的連線物件,然後串連到資料庫data.mdb中,取得串連控制代碼後,把它儲存在session("conn")這個session會話變數中,在開啟記錄集前,從session("conn")中取出控制代碼,藉助於session對象。我們可以使不同的ASP頁面共用一個連線物件,減少了對伺服器記憶體的開銷,而我們也不需要擔心,當一個客戶因為錯誤操作導致伺服器不能析放該被佔用的session連線物件,因為我們知道每個客戶的session對象是有一定的生存期限的,過了這個期限,伺服器就會自動把它析放掉。
在ASP的資料庫編程中,connection對象是我們不可能離開的一個對象,在對資料庫進行任何的操作,比如更新記錄,插入,刪除,檢索等,都必須藉助於connection對象來完成。形象地來說,connection對象就是程式於資料庫溝通的管道,所有對資料庫的操作,都必須經過它,因此,無論我們以何種方式串連資料庫前,總是少不了執行下列的代碼。
   Set conn = Server.CreateObject("ADODB.Connection")
  建立一個connection對象的執行個體變數,然後在它的基礎上建立recorderset對象或是command對象來操作資料庫。既然connection對象是如此的重要,那麼如何最佳化和管理好connection對象對資料庫程式來說是極其重要的,它關係到程式的效能。
  每當一個客戶執行資料庫操作時,就需要藉助一個connection對象,而每個connection對象就會佔用伺服器的一部分資源,而資料庫的同時串連數不可能是無限的,因此。在考濾要提供高效能的資料庫web程式時,我們需要考濾如何去減少伺服器的開銷。一般來說。每個asp頁面中建立一個connection對象,都會在伺服器中產生一個對資料庫的串連。而不同的頁面的connection對象是不能共用的。那麼。我們可不可以使同一個使用者所訪問的不同頁面共用一個connection串連通道呢。
  大家不妨想一想我們的asp六大內建對象的session對象,他可以為某個特定的使用者來儲存私人的資料,如果我們把connection對象儲存在session對象中,是否可以使不同的asp頁面都使用同一個串連通道呢?看看下面的這段程式。

$#@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%">

 在這個資料庫連接中。我們使用了session對象,首先,建立一個conn的連線物件,然後串連到資料庫data.mdb中,取得串連控制代碼後,把它儲存在session("conn")這個session會話變數中,在開啟記錄集前,從session("conn")中取出控制代碼,藉助於session對象。我們可以使不同的ASP頁面共用一個連線物件,減少了對伺服器記憶體的開銷,而我們也不需要擔心,當一個客戶因為錯誤操作導致伺服器不能析放該被佔用的session連線物件,因為我們知道每個客戶的session對象是有一定的生存期限的,過了這個期限,伺服器就會自動把它析放掉。
  而ODBC3.0所提供的串連池connection pooling。也能有效地提高資料庫的運行效能。我們知道,在眾多的asp頁面中產生的connection對象,總是處在不斷建立串連,解除串連,析放串連中。
  如何能高效的管理和使用好這些被廢棄的串連,也可以在一定程式上大大提高運行效率。而ODBC3.0則提供了這樣的功能,它能聰明的把需要建立立的串連引導至即將廢棄的connection對象上,反覆地使用它。這樣,就能節省了不好伺服器的開銷。



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。