摘 要: 本文就ADO.NET中的三種不同提供程序?qū)QLServer2000數(shù)據(jù)庫進(jìn)行了訪問,分析了不同提供程序的執(zhí)行效率。
關(guān)鍵詞: ADO.NET 提供程序 SQL Server2000效率
1. ADO.NET及提供程序
ADO.NET是為Microsoft.NET編程人員提供數(shù)據(jù)訪問服務(wù)的對象模型。對于任何一種數(shù)據(jù)訪問模型,首先要完成的就是能夠連接到數(shù)據(jù)源。.NET Framework提供了一種名為“數(shù)據(jù)提供程序”的機(jī)制。它是ADO.NET架構(gòu)的核心組件,用于連接數(shù)據(jù)庫、執(zhí)行命令和取得結(jié)果。有Microsoft SQLServer.NET Framework數(shù)據(jù)提供程序、OLE DB.NET Framework數(shù)據(jù)提供程序、ODBC.NET Framework數(shù)據(jù)提供程序。
2.數(shù)據(jù)庫
Microsoft SQL Server 2000是美國微軟公司推出的使用相當(dāng)廣泛的數(shù)據(jù)庫管理系統(tǒng),包含一套圖形工具,如服務(wù)器管理(用于啟動和關(guān)閉數(shù)據(jù)庫服務(wù))、企業(yè)管理器(用于創(chuàng)建和修改數(shù)據(jù)庫及備份數(shù)據(jù)庫等)和查詢分析器(用于交互執(zhí)行Transact-SQL語句和過程并提供圖形查詢分析功能)等。它憑借著Windows操作系統(tǒng)先天支持的優(yōu)越性,很快成為很多中小型管理軟件開發(fā)的首選數(shù)據(jù)庫。這也是筆者選擇其作為ADO.NET訪問數(shù)據(jù)源研究的原因。
3.測試不同.NET提供程序的訪問效率
3.1創(chuàng)建測試項(xiàng)目
利用Microsoft Visual Studio 2005平臺開發(fā)Windows項(xiàng)目。
3.2分別利用不同.NET提供程序創(chuàng)建連接
3.2.1Microsoft SQLServer.NET Framework數(shù)據(jù)提供程序。
using System.Data.SqlClient;
SqlConnection sqlcn=new SqlConnection();
3.2.2OLE DB.NET Framework數(shù)據(jù)提供程序。
using System.Data.OleDb;
OleDbConnection oledbcn=new OleDbConnection();
3.2.3ODBC.NET Framework數(shù)據(jù)提供程序。
using System.Data.Odbc;
OdbcConnection odbccn=new OdbcConnection();
3.3將SQL Server2000中的數(shù)據(jù)填充到數(shù)據(jù)集
選擇完全相同的數(shù)據(jù)源(同一數(shù)據(jù)庫中的同一張表),將其數(shù)據(jù)填充到數(shù)據(jù)集。
3.3.1創(chuàng)建數(shù)據(jù)集。
DataSet ds=new DataSet();
3.3.2創(chuàng)建不同提供程序的數(shù)據(jù)適配器。
SqlDataAdapter sqlda=new SqlDataAdapter();
OleDbDataAdapter oledbda=new OleDbDataAdapter();
OdbcDataAdapter odbcda=new OdbcDataAdapter();
3.3.3應(yīng)用Fill()方法。
sqlda.Fill(ds,“xjb”);
oledbda.Fill(ds,“xjb”);
odbcda.Fill(ds,“xjb”);
3.4測試數(shù)據(jù)比較
整表數(shù)據(jù)填充(表中包含62個(gè)字段,12466條記錄)
由上表測試數(shù)據(jù)可知:
Microsoft SQLServer.NET Framework數(shù)據(jù)提供程序所用平均時(shí)間:579.7毫秒。
OLEDB.NET Framework數(shù)據(jù)提供程序所用平均時(shí)間:1767.4毫秒。
ODBC.NET Framework數(shù)據(jù)提供程序所用平均時(shí)間:2496.1毫秒。
4.結(jié)論
ODBC.NET Framework數(shù)據(jù)提供程序所用平均時(shí)間>OLEDB.NET Framework數(shù)據(jù)提供程序所用平均時(shí)間>Microsoft SQLServer.NET Framework數(shù)據(jù)提供程序所用平均時(shí)間,可見,訪問SQLServer2000數(shù)據(jù)庫時(shí),Microsoft SQLServer.NET Framework數(shù)據(jù)提供程序的開銷時(shí)間最少,即效率最高。
5.結(jié)語
其實(shí),.NET Framework的不同提供程序就是為訪問不同類型數(shù)據(jù)庫而設(shè)計(jì)的,開發(fā)人員應(yīng)針對不同類型的數(shù)據(jù)庫選用不同的.NET提供程序,以達(dá)到更高效的目的。但是很多開發(fā)人員只考慮代碼的重用,而忽略了訪問效率;或是測試數(shù)據(jù)過少,認(rèn)為其差別不大,而不作選擇。筆者通過在實(shí)際應(yīng)用中測試出不同.NET提供程序在訪問SQLServer2000效率的比較,認(rèn)為在開發(fā)管理系統(tǒng)時(shí),開發(fā)人員如選擇SQLServer2000作數(shù)據(jù)庫,應(yīng)采用ADO.NET訪問技術(shù);要保障數(shù)據(jù)訪問效率,則應(yīng)選擇Microsoft SQLServer.NET Framework數(shù)據(jù)提供程序。
參考文獻(xiàn):
[1]David Sceppa.ADO.NET2.0技術(shù)內(nèi)幕[M].賈洪峰譯.北京:清華大學(xué)出版社,2005.
[2]微軟公司.數(shù)據(jù)庫訪問技術(shù)——ADO.NET2.0[M].北京:高等教育出版社,2007.