Office中国论坛/Access中国论坛

标题: 以域聚合函数作为查询的条件突然变得特别慢 [打印本页]

作者: 老鬼    时间: 2017-5-12 17:33
标题: 以域聚合函数作为查询的条件突然变得特别慢
原来在查询中(要查询的SQLSERVER链接表记录较多,数十万条)设置的是一个DMAX域聚合函数(该函数查询的SQLSERVER链接表只有十几条记录)的条件,原来运行得好好的,今天发现突然变得特别慢,然后我把DMAX函数改为SELECT MAX的SQL语句,速度马上恢复正常。有谁能解释下是什么原因吗?不知道跟最近公司在搞什么网络有关?

作者: roych    时间: 2017-5-12 18:05
D字开头的域聚合函数向来效率较低,无解。
一般情形,有几种代替的做法:
1、如果不涉及累计的话,建议使用多条件+Max或者联接查询,例如,DMax(“字段1”,“表1”,“字段2=”&【字段2】),可以改为:
select Max(字段1) as 结果 from 表1 left join 表1.字段2=表2.字段2
2、用DAO或者ADO的记录集来代替。

作者: tmtony    时间: 2017-5-12 19:41
d字函数本身就慢
我是自己用DAO或ADO写了模拟它的函数
gf_Dlookup
gf_Dmax
gf_DCount
使用方法差不多
http://www.office-cn.net/t/devlib/index.html?yu_search.htm

作者: 老鬼    时间: 2017-5-15 13:27
看来D函数不招人待见啊!




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3