设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 4366|回复: 3
打印 上一主题 下一主题

[查询] 以域聚合函数作为查询的条件突然变得特别慢

[复制链接]
跳转到指定楼层
1#
发表于 2017-5-12 17:33:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
原来在查询中(要查询的SQLSERVER链接表记录较多,数十万条)设置的是一个DMAX域聚合函数(该函数查询的SQLSERVER链接表只有十几条记录)的条件,原来运行得好好的,今天发现突然变得特别慢,然后我把DMAX函数改为SELECT MAX的SQL语句,速度马上恢复正常。有谁能解释下是什么原因吗?不知道跟最近公司在搞什么网络有关?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2017-5-12 18:05:15 | 只看该作者
D字开头的域聚合函数向来效率较低,无解。
一般情形,有几种代替的做法:
1、如果不涉及累计的话,建议使用多条件+Max或者联接查询,例如,DMax(“字段1”,“表1”,“字段2=”&【字段2】),可以改为:
select Max(字段1) as 结果 from 表1 left join 表1.字段2=表2.字段2
2、用DAO或者ADO的记录集来代替。

点击这里给我发消息

3#
发表于 2017-5-12 19:41:18 | 只看该作者
d字函数本身就慢
我是自己用DAO或ADO写了模拟它的函数
gf_Dlookup
gf_Dmax
gf_DCount
使用方法差不多
http://www.office-cn.net/t/devlib/index.html?yu_search.htm
4#
 楼主| 发表于 2017-5-15 13:27:06 | 只看该作者
看来D函数不招人待见啊!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-1 17:32 , Processed in 0.102267 second(s), 28 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表