ACCESS的真假:一、DROP删除表再重建比Delete from Table1快吗?
2009-10-15 08:46:42
Option Explicit
Public Sub ti()
Dim ssql As String
Dim conn As ADODB.Connection
Set conn = CurrentProject.Connection
ssql = "create table table1(id integer,cname char(10))"
conn.Execute ssql
Dim i As Integer
For i = 1 To 10000
ssql = "insert into table1(id,cname) values(" & i & ",'" & i & "')"
conn.Execute ssql
DoEvents
Next i
End Sub
Public Sub tx()
Dim ssql As String
Dim conn As ADODB.Connection
Set conn = CurrentProject.Connection
Dim i As Integer
On Error Resume Next
For i = 1 To 1000
ssql = "drop table t" & (10000 + i)
CurrentProject.Connection.Execute ssql
Next i
On Error GoTo 0
For i = 1 To 1000
ssql = "select * into t" & (10000 + i) & " from table1"
conn.Execute ssql
DoEvents
Next i
End Sub
Public Sub t1()
Dim ssql As String
Dim i As Integer
For i = 1 To 1000
ssql = "drop table t" & (10000 + i)
CurrentProject.Connection.Execute ssql
ssql = "create table t" & (10000 + i) & " (id integer,cname char(10))"
CurrentProject.Connection.Execute ssql
Next i
End Sub
Public Sub t2()
Dim ssql As String
Dim i As Integer
For i = 1 To 1000
ssql = "delete from t" & (10000 + i)
CurrentProject.Connection.Execute ssql
Next i
End Sub
Public Sub t()
Call tx
Debug.Print "t1 start.", Now
Call t1
Debug.Print "t1 end .", Now
Call tx
Debug.Print "t2 start.", Now
Call t2
Debug.Print "t2 end .", Now
End Sub
测试结果
t1 start. 5/15/2009 8:03:12 PM t1 end . 5/15/2009 8:03:16 PM t2 start. 5/15/2009 8:03:31 PM t2 end . 5/15/2009 8:03:33 PM
测试结论 T2() 耗时 < T1() 耗时, 测试结果再一次与猜想背离。