我想確定更改我的查詢所產生的效果。要做到這一點,我需要一些性能指標。是否可以確定MS Access中查詢的執行時間?使用外部程序或更改註冊表(SHOWJETPLAN)不是一種選擇,因爲我的工作站真的被網絡管理員鎖定了...所以我需要一個in-Access解決方案。謝謝!如何確定ms access 2007中的查詢執行時間?
1
A
回答
1
我有一個快速和骯髒的方法,我使用用於評估的替代算法相對性能,是他們不同的功能,查詢等
我利用Access.Application對象的Run
命令。它使我能夠快速比較2,3,4等不同的方法。對於每個額外的方法,我只是創建另一個函數名爲ThingX
。
然後,我使用迭代次數來解決GetTickCount
約10毫秒精度的限制。如果你想要比GetTickCount
更高的分辨率,你可以使用像QueryPerformanceCounter這樣的高分辨率定時器。就個人而言,我認爲這不值得所有額外的工作。如果您在VBA中編寫性能至關重要的代碼,並且擔心會縮短執行時間的微妙時間,那麼您將使用錯誤的工具(VBA)進行工作。
Private Declare Function GetTickCount Lib "kernel32"() As Long
Sub TimeThings() 'vv
Const NumThings = 2
Const Iterations = 2500
Dim t As Integer, i As Integer, s As Long
For t = 1 To NumThings
s = GetTickCount
For i = 1 To Iterations
'Debug.Print Run("Thing" & t, i)
Run "Thing" & t, i
Next i
Debug.Print "Thing "; t, GetTickCount - s; " ms elapsed"
Next t
End Sub
Function Thing1(Optional Val)
Dim i
For i = 1 To Val
Thing1 = Thing1 & Chr(65 + (i Mod 57))
Next i
End Function
Function Thing2(Optional Val)
Dim i
Thing2 = Space(Val)
For i = 1 To Val
Mid(Thing2, i) = Chr(65 + (i Mod 57))
Next i
End Function
在我的系統,運行TimeThings()產生以下的輸出:
Thing 1 4087 ms elapsed
Thing 2 2652 ms elapsed
相關問題
- 1. MS Access 2007:計數查詢
- 2. MS Access 2007中插入查詢執行失敗
- 3. MS Access查詢時間
- 4. 我如何使用MS Access 2007更改MS Access 97文件的查詢
- 5. MS Access 2007疑難問題SQL查詢
- 6. MS Access 2007附加查詢問題
- 7. MS Access 2007年:日期查詢
- 8. MS Access查詢時間字段,確定時間是否在範圍之間
- 9. 如何在MS ACCESS 2007查詢中使用LIMIT
- 10. 如何在MS Access 2007中嵌套這兩個SQL查詢?
- 11. MS Access查詢 - 總周工作時間
- 12. Microsoft Access 2007中的自定義查詢
- 13. 德爾福ADO與MS Access - 查詢時間減少後,運行特定查詢
- 14. 如何聲明和在MS Access 2007查詢
- 15. MS Access - 在查詢中運行宏 - 時間轉換
- 16. MS Access查詢
- 17. MS ACCESS查詢
- 18. MS Access 2007中查詢到任何結果
- 19. MS Access 2007中的事件
- 20. 查詢的MS Access
- 21. 進行查詢,從特定時間間隔提取缺失的數字。 MS Access
- 22. MS Access 2007查詢不會在SQL Server 2008上運行
- 23. 我如何使用MS-Access查詢轉換行中的MS Access列(選擇statment)
- 24. MS Access 2003中的查詢
- 25. Ms-access中的查詢
- 26. Ms-access中的SQL查詢
- 27. MS Access 2007 - 查詢裏面查詢裏面查詢裏面查詢
- 28. 如何從C#Web服務執行Access 2007文件中的SQL查詢
- 29. 在MS Access 2007中添加參數查詢的默認值
- 30. 什麼應該是在MS Access 2007中的查詢