设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

Access数据库查询十万条数据速度奇慢给出代码求解答

[复制链接]
跳转到指定楼层
1#
发表于 2016-8-4 21:31:58 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
第一个问题:数据库数据运算过慢
本人在公司做数据库查询,用access管理基础数据资料,货物发送情况,每个月基本一万条记录,几年的数据基本上就要几十万条,用前后台数据库分的方式,main数据库链接data数据库的基础数据表。主要针对2016年数据进行查询,基本数据条数5万条,每条记录大约有十几个字段。
具体查询代码如下
SELECT *
FROM [2016-测试表] AS a
WHERE ID in (select top 2 ID from [2016-测试表] where ProCate=a.ProCate order by AmountMUSD desc )
ORDER BY a.ProCate, a.AmountMUSD DESC;
第一次查询速度30多秒,此后再查询需要20多秒,请问如何改进或者优化,是用分页,还是需要设计窗体进行改进

第二个问题:数据库合并筛选前两名
同样是这段查询代码,如何实现分组合并后再筛选前几名,比如将产品类别相同(立加、卧加等),来源与某一国别(如:日本、美国、德国等)的进行分组合并,然后针对产品类别内部,进行国别的排序,比如前两名:1、美国$XXXX;2、德国$XXXX。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2016-8-5 22:22:44 | 显示全部楼层
谢谢楼上,还有一个问题没有解决,top2是我为了说明问题简化的,事实上公司操作需要top5,而且还不能有重复项,
就是说
产品为立加的话,按照国别筛选,比如现在就会出现top2都是德国的两个项目,而实践工作中,要把同样国别的进行合并,统一AmountMUSD进行加总,计算立加产品,在德国的合计累计金额,然后再和其他国家进行比较,选择出前几名(可以是5,本例子中假设为2是为了运算方便)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-27 18:43 , Processed in 0.101727 second(s), 26 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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