新鲜出炉,ADO.NET与ADO速度测试!!!
icyer 2002-01-15 04:39:10 测试环境:
Windows 2000 SP2, Visual Studio .NET Beta2, SQL Server 7.0
测试项目:
ADO.NET 的System.Data.SqlClient
ADO.NET 的System.Data.OleDb
ADO 2.7 (从"引用"中添加"COM"的"\Program Files\Common Files\System\ado\msado15.dll")
测试代码:
1. ADO.NET 的System.Data.SqlClient
Dim timer As DateTime = Now()
Dim tconn As New SqlClient.SqlConnection("Data Source=db;User ID=sa;Password=;Initial Catalog=pubs;")
tconn.Open()
Dim tcmd As New SqlClient.SqlCommand()
tcmd.Connection = tconn
tcmd.CommandType = CommandType.Text
Dim m As Integer, strcmd As String
For m = 0 To 10000
strcmd = "insert into tbTest values ('" & m.ToString & "'," & m.ToString & ")"
tcmd.CommandText = strcmd
tcmd.ExecuteNonQuery()
Next
Dim timer1 As DateTime = Now()
lblMsg.Text = timer1.ToLongTimeString & "---" & timer.ToLongTimeString
用时:17秒!!!
2. ADO.NET 的System.Data.OleDb
Dim timer As DateTime = Now()
Dim tconn As New OleDb.OleDbConnection("Provider=SQLOLEDB.1;Data Source=db;User ID=sa;Password=;Initial Catalog=pubs;")
tconn.Open()
Dim tcmd As New OleDb.OleDbCommand()
tcmd.Connection = tconn
tcmd.CommandType = CommandType.Text
Dim m As Integer, strcmd As String
For m = 0 To 10000
strcmd = "insert into tbTest values ('" & m.ToString & "'," & m.ToString & ")"
tcmd.CommandText = strcmd
tcmd.ExecuteNonQuery()
Next
Dim timer1 As DateTime = Now()
lblMsg.Text = timer1.ToLongTimeString & "---" & timer.ToLongTimeString
用时:32秒!!
3. ADO 2.7
Dim timer As DateTime = Now()
Dim adoconn As New ADODB.Connection()
adoconn.ConnectionString = "Provider=SQLOLEDB.1;Data Source=db;User ID=sa;Password=;Initial Catalog=pubs;"
adoconn.Open()
Dim adocmd As New ADODB.Command()
adocmd.ActiveConnection = adoconn
adocmd.CommandType = ADODB.CommandTypeEnum.adCmdText
Dim m As Integer, strcmd As String
For m = 0 To 10000
strcmd = "insert into tbTest values ('" & m.ToString & "'," & m.ToString & ")"
adocmd.CommandText = strcmd
adocmd.Execute()
Next
Dim timer1 As DateTime = Now()
lblMsg.Text = timer1.ToLongTimeString & "---" & timer.ToLongTimeString
用时:84秒!
结论就不必我说了吧。
补充一点:
我的机器配置是PIII 450,128M,华硕815EP,30GB。
当前运行程序:Visual Studio .NET Beta2, SQL Server 7.0
没次测试之后都把tbTest全部清空。
tbTest中有两个字段:varchar的Field1,int的Field2。
此测试结果只是大概结果。