相關(guān)資訊
- 《戰(zhàn)國(guó)無(wú)雙4-2》怎么換服裝?戰(zhàn)國(guó)無(wú)
- 關(guān)于責(zé)任的名言警句大全
- 《戰(zhàn)國(guó)無(wú)雙4-2》PC版如何聯(lián)機(jī)? 戰(zhàn)
- 戰(zhàn)國(guó)無(wú)雙4-2技能覺(jué)醒牛逼嗎 全新
- 《戰(zhàn)國(guó)無(wú)雙4-2》手柄無(wú)效怎么解決
- 戰(zhàn)國(guó)無(wú)雙4-2如何設(shè)置語(yǔ)言 戰(zhàn)國(guó)無(wú)雙
- 戰(zhàn)國(guó)無(wú)雙4-2怎么樣跳過(guò)進(jìn)入開(kāi)場(chǎng)動(dòng)畫(huà)
- 什么是應(yīng)屆生畢業(yè)生
- 應(yīng)屆生簡(jiǎn)歷自我評(píng)價(jià)
- 應(yīng)屆生簡(jiǎn)歷怎么寫(xiě)
本類(lèi)常用軟件
-
福建農(nóng)村信用社手機(jī)銀行客戶(hù)端下載下載量:584204
-
Windows優(yōu)化大師下載量:416896
-
90美女秀(視頻聊天軟件)下載量:366961
-
廣西農(nóng)村信用社手機(jī)銀行客戶(hù)端下載下載量:365699
-
快播手機(jī)版下載量:325855
本文跟大家一起分享學(xué)習(xí)的是關(guān)于ADO連接數(shù)據(jù)庫(kù)的通常方法和比較說(shuō)明,希望能給大家?guī)?lái)幫助或啟發(fā)。
ADO連接數(shù)據(jù)庫(kù)通常有三種方法:System DSN Connection,DSN-less Connection 和 OLE DB Connection,這是大家都很熟悉的,它們的使用方法如下:
(注:三種方法的區(qū)別在于使用的是哪個(gè)關(guān)鍵字 - DSN,Driver,Data Source,Provider。UID,PWD 是 ODBC 的標(biāo)記,User ID,Password 是 OLEDB 的標(biāo)記。特別指出的是 Data Source 在 ODBC 標(biāo)記中表示數(shù)據(jù)源,等同于 DSN,在 OLEDB 標(biāo)記中表示服務(wù)器名或數(shù)據(jù)庫(kù)名。)
'System DSN Connection
Set cnn = Server.CreateObject("ADODB.Connection")
cnn.Open "DSN=your_dsn;UID=user_name;PWD=password;"
'或者用 OLEDB 標(biāo)記
cnn.Open "Data Source=your_dsn;User ID=user_name;Password=password;"
'DSN-less Connection
'以SQL Server為例
Set cnn = Server.CreateObject("ADODB.Connection")
cnn.Open "driver={SQL Server};server=server_name;uid=user_name;pwd=pwd;database=pubs"
'OLE DB Connection
'以SQL Server為例
Set cnn = Server.CreateObject("ADODB.Connection")
cnn.Open "provider=sqloledb;data source=server_name;initial catalog=pubs;user id=user_name;password=pwd;"
下面,我們討論一下它們各自的性能。
從本質(zhì)上說(shuō),System DSN 和 DSN-less Connection 都是通過(guò) ODBC 與數(shù)據(jù)庫(kù)進(jìn)行連接的,它們之間區(qū)別不大(事實(shí)上也確實(shí)如此)。有很多人說(shuō) DSN-less Connection 要優(yōu)于 System DSN Connection,對(duì)這一點(diǎn)我不反對(duì)。(是不是前后有些矛盾,剛說(shuō)它們區(qū)別不大,現(xiàn)在又......)我曾經(jīng)分別對(duì)這兩種連接測(cè)試過(guò),但是失敗了。因?yàn)槲业臏y(cè)試數(shù)據(jù)沒(méi)有規(guī)律,根本說(shuō)明不了問(wèn)題(或許用假設(shè)檢驗(yàn)?zāi)鼙容^兩者的性能,不過(guò)得算死)。于是我得出了結(jié)論:沒(méi)有結(jié)論!后來(lái)在網(wǎng)上看到一篇文章 System DSN or DSN-less Connection? 算是有了答案。
結(jié)論就是(這是原文):
These tests showed that DSN-less connection were slightly faster than System DSN Connections.The increase in performance was nothing monumental;the greatest performance boost was mere 13% faster with 64 concurrent requests.For one,two,or four concurrent requests,there was virtually no performance improvement.In fact,no noticeable improvement is seen in a DSN-less connection over a System DSN until there are 10 or more concurrent connections.
為什么?因?yàn)?System DSN 在連接時(shí)要讀注冊(cè)表。
現(xiàn)在只有OLE DB沒(méi)有說(shuō)了(打字真累)。OLE DB 比 ODBC 要高效的多。
根本不用測(cè)試,這個(gè)結(jié)論是顯而易見(jiàn)的。如果你還有些懷疑,建議去看看 連接池(Connection Pooling)介紹 那里有 MDAC framework 的圖示,從圖中可以看出,經(jīng) ODBC 連接是 ADO-->OLE DB-->ODBC Provider-->ODBC-->driver-->數(shù)據(jù)庫(kù);經(jīng) OLE DB 是 ADO-->OLE DB-->DB Provider-->數(shù)據(jù)庫(kù)。哪個(gè)更直接?當(dāng)然是 OLE DB!
OLE DB 連接數(shù)據(jù)庫(kù)比 ODBC 快,檢索數(shù)據(jù)比 ODBC 快。所以,我建議每一個(gè)在網(wǎng)上安家的人:用OLE DB!
Set cnn = Server.CreateObject("ADODB.Connection")
'Connection string for SQL Server
cnn.Open "Provider=SQLOLEDB;Data Source=srvName;Initial Catalog=DBname;User ID=user_id;Password=yourPassword;"
'for access
cnn.Open "Provider=microsoft.Jet.OLEDB.4.0;Data Source=db_path"
連接數(shù)據(jù)庫(kù)就是這么容易!