[access查询]测试查询速度
时 间:2009-11-11 00:00:00
作 者:t小雨 ID:4598 城市:柳州
摘 要:测试查询速度
正 文:
还是举个例子比较直观,表1中有分类和数量两个字段,有20个分类,共200条记录,要查询每个分类的最大数量,使用子查询有两个方法,SQL语句分别如下:
SELECT 分类, 数量 FROM 表1 AS a WHERE 数量=(Select max(数量) From 表1 Where 分类=a.分类)
SELECT 分类, 数量 FROM 表1 AS a WHERE 数量=(Select top 1 数量 From 表1 Where 分类=a.分类 Order by 数量 desc)
第一句使用max函数,第二句对记录排序后用TOP取第一条。那么这两种方法哪一种更快一点呢(哈,我是个好奇心很重的人)?我进行了测试,分别用上面两个语句打开记录集10000次,看看哪个用时更多一点。
代码如下:
Public Sub max_pk_top()
Dim dbs As DAO.Database
Dim rsmax As DAO.Recordset
Dim rstop As DAO.Recordset
Dim stmax As String
Dim sttop As String
Dim dmx As Date
Dim dtp As Date
Dim i As Integer
Set dbs = CurrentDb
stmax = "SELECT 分类, 数量 FROM 表1 AS a WHERE 数量=(Select max(数量) From 表1 Where 分类=a.分类)"
sttop = "SELECT 分类, 数量 FROM 表1 AS a WHERE 数量=(Select top 1 数量 From 表1 Where 分类=a.分类 Order by 数量 desc)"
dtp = Now()
For i = 0 To 10000
Set rstop = dbs.OpenRecordset(sttop)
rstop.Close
Next
dtp = Now() - dtp
dmx = Now()
For i = 0 To 10000
Set rsmax = dbs.OpenRecordset(stmax)
rsmax.Close
Next
dmx = Now() - dmx
Debug.Print "max: " & dmx
Debug.Print "mtp: " & dtp
Set rsmax = Nothing
Set rstop = Nothing
Set dbs = Nothing
End Sub
结果是:第一句max用时58秒,第二句top...desc用时67秒。
说明了max比top...desc快一点。
10000次才快那么一点,收获不大。
再来,这次取每个分类的最小数量。
第一句用min代替max,第二句取消desc。
结果是:第一句min用时40秒,第二句top用时45秒。
哈,这次收获多一点了。
min比top快那么一点,
再对比前面,发现取最小值(min)比取最大值(max)快18秒,升序语句(top)比降序语句(top...desc)快22秒。
好象收获还不是很大哦。再继续。。。
把那两个SQL语句生成固定查询,在测试代码中打开固定查询作为记录集。
得到取分类最大数量结果是:max用时30秒,top...desc用时35秒。
分别比用SQL语句打开记录集快了差不多一倍。
取分类最小数量,结果是:min用时13秒,top用时14秒。
竟然分别比用SQL语句快了两倍多。
准备结束了,在这里以提供测试结果为主,大家还可以进一步测试。
也简单总结一下我的测试结果:取最小最大值用SQL聚合函数max和min比用top加排序快;取最小值比取最大值快;使用固定查询比用SQL语句快。
Access软件网官方交流QQ群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- 统计当月之前(不含当月)的记录...(03.11)
- 【Access Inputbo...(03.03)
- 按回车键后光标移动到下一条记录...(02.12)
- 【Access Dsum示例】...(02.07)
- Access对子窗体的数据进行...(02.05)
- 【Access高效办公】上月累...(01.09)
- 【Access高效办公】上月累...(01.06)
- 【Access Inputbo...(12.23)
- 【Access Dsum示例】...(12.16)

学习心得
最新文章
- 仓库管理实战课程(9)-开发往来单...(04.02)
- 仓库管理实战课程(8)-商品信息功...(04.01)
- 仓库管理实战课程(7)-链接表(03.31)
- 仓库管理实战课程(6)-创建查询(03.29)
- 仓库管理实战课程(5)-字段属性(03.27)
- 设备装配出入库管理系统;基于Acc...(03.24)
- 仓库管理实战课程(4)-建表操作(03.22)
- 仓库管理实战课程(3)-需求设计说...(03.19)
- 仓库管理实战课程(2)-软件背景和...(03.18)
- 仓库管理实战课程(1)-讲师介绍(03.16)