摘 要: 本文就ADO.NET中的三種不同提供程序對SQLServer2000數據庫進行了訪問,分析了不同提供程序的執行效率。
關鍵詞: ADO.NET 提供程序 SQL Server2000效率
1. ADO.NET及提供程序
ADO.NET是為Microsoft.NET編程人員提供數據訪問服務的對象模型。對于任何一種數據訪問模型,首先要完成的就是能夠連接到數據源。.NET Framework提供了一種名為“數據提供程序”的機制。它是ADO.NET架構的核心組件,用于連接數據庫、執行命令和取得結果。有Microsoft SQLServer.NET Framework數據提供程序、OLE DB.NET Framework數據提供程序、ODBC.NET Framework數據提供程序。
2.數據庫
Microsoft SQL Server 2000是美國微軟公司推出的使用相當廣泛的數據庫管理系統,包含一套圖形工具,如服務器管理(用于啟動和關閉數據庫服務)、企業管理器(用于創建和修改數據庫及備份數據庫等)和查詢分析器(用于交互執行Transact-SQL語句和過程并提供圖形查詢分析功能)等。它憑借著Windows操作系統先天支持的優越性,很快成為很多中小型管理軟件開發的首選數據庫。這也是筆者選擇其作為ADO.NET訪問數據源研究的原因。
3.測試不同.NET提供程序的訪問效率
3.1創建測試項目
利用Microsoft Visual Studio 2005平臺開發Windows項目。
3.2分別利用不同.NET提供程序創建連接
3.2.1Microsoft SQLServer.NET Framework數據提供程序。
using System.Data.SqlClient;
SqlConnection sqlcn=new SqlConnection();
3.2.2OLE DB.NET Framework數據提供程序。
using System.Data.OleDb;
OleDbConnection oledbcn=new OleDbConnection();
3.2.3ODBC.NET Framework數據提供程序。
using System.Data.Odbc;
OdbcConnection odbccn=new OdbcConnection();
3.3將SQL Server2000中的數據填充到數據集
選擇完全相同的數據源(同一數據庫中的同一張表),將其數據填充到數據集。
3.3.1創建數據集。
DataSet ds=new DataSet();
3.3.2創建不同提供程序的數據適配器。
SqlDataAdapter sqlda=new SqlDataAdapter();
OleDbDataAdapter oledbda=new OleDbDataAdapter();
OdbcDataAdapter odbcda=new OdbcDataAdapter();
3.3.3應用Fill()方法。
sqlda.Fill(ds,“xjb”);
oledbda.Fill(ds,“xjb”);
odbcda.Fill(ds,“xjb”);
3.4測試數據比較
整表數據填充(表中包含62個字段,12466條記錄)

由上表測試數據可知:
Microsoft SQLServer.NET Framework數據提供程序所用平均時間:579.7毫秒。
OLEDB.NET Framework數據提供程序所用平均時間:1767.4毫秒。
ODBC.NET Framework數據提供程序所用平均時間:2496.1毫秒。
4.結論
ODBC.NET Framework數據提供程序所用平均時間>OLEDB.NET Framework數據提供程序所用平均時間>Microsoft SQLServer.NET Framework數據提供程序所用平均時間,可見,訪問SQLServer2000數據庫時,Microsoft SQLServer.NET Framework數據提供程序的開銷時間最少,即效率最高。
5.結語
其實,.NET Framework的不同提供程序就是為訪問不同類型數據庫而設計的,開發人員應針對不同類型的數據庫選用不同的.NET提供程序,以達到更高效的目的。但是很多開發人員只考慮代碼的重用,而忽略了訪問效率;或是測試數據過少,認為其差別不大,而不作選擇。筆者通過在實際應用中測試出不同.NET提供程序在訪問SQLServer2000效率的比較,認為在開發管理系統時,開發人員如選擇SQLServer2000作數據庫,應采用ADO.NET訪問技術;要保障數據訪問效率,則應選擇Microsoft SQLServer.NET Framework數據提供程序。
參考文獻:
[1]David Sceppa.ADO.NET2.0技術內幕[M].賈洪峰譯.北京:清華大學出版社,2005.
[2]微軟公司.數據庫訪問技術——ADO.NET2.0[M].北京:高等教育出版社,2007.