ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 1065|回复: 3

[求助] 如何解决SQL索引个数影响运行速度(重提并附件)

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-6-26 16:05 | 显示全部楼层 |阅读模式
strSQL = "SELECT A.发货单号码,A.送达方编码,A.求和,A.收货单位,A.送货地址,A.联系人,A.电话,B.省份,B.城市,B.承运商 FROM ((SELECT 发货单号码,送达方编码,SUM(整数) AS 求和,收货单位,送货地址,联系人,电话 FROM [明细$] GROUP BY 发货单号码,送达方编码,收货单位,送货地址,联系人,电话) A LEFT JOIN [送达方$] B ON A.送达方编码=B.送达方编码)"
如上代码:A在“明细”表中取数,B在“送达方”表中取数,其中A有个项目求和是A中相同“发货单号码”对应“整数”列的和,之前统计很快,因为不用输出送货地址,联系人,电话3列,但自从加入这3列后运行就变得超慢了,但加入3列信息就必须在GROUP BY后面也加上这3个字段名不然代码报错,如下图(我删除和后面的“电话”出现如下报错),请问在不删减字段的情况下如何使程序变快,其中 GROUP BY后面“发货单号码,送达方编码,收货单位,送货地址,联系人,电话”这6项都是唯一性对应的,就是一个发货单号码只对应一个送达方编码、送货单位、送货地址、联系人、电话。
请各位大大赐教!谢谢!
之前没附件,现在提交上来,请大师帮忙优化一下,谢谢!
统计.rar (272.19 KB, 下载次数: 9)

TA的精华主题

TA的得分主题

发表于 2018-6-26 17:40 | 显示全部楼层
看了下附件,其实和GROUP BY语句关系不大,是你的送达方表有问题。F1048570单元格有个错误值,以至于SQL读取了一百多万行的数据,建议你要么清理掉这个糟糕的错误值,要么在SQL语句中设定送达方的引用范围。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-6-26 18:55 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
看见星光 发表于 2018-6-26 17:40
看了下附件,其实和GROUP BY语句关系不大,是你的送达方表有问题。F1048570单元格有个错误值,以至于SQL读 ...

五体投地的膜拜星光大大!!!!!!

TA的精华主题

TA的得分主题

发表于 2018-6-26 19:06 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 ivccav 于 2018-6-26 19:11 编辑

索引会显著提高查询速度,而降低编辑速度。你说应该是分组吧?

因为Excel没有索引,每次查询都是全表扫描,效率会慢很多。
要想提高速度,必须把你的数据导进数据库中,才能使用索引。

在Excel中,只能改一下SQL语句,Group By后面可以少4个字段,速度会提高一些:

SELECT A.发货单号码,A.送达方编码,A.求和,B.收货单位,B.送货地址,B.联系人,B.电话,B.省份,B.城市,B.承运商 FROM ((SELECT 发货单号码,送达方编码, SUM(整数) AS 求和 FROM [明细$] GROUP BY 发货单号码,送达方编码) A LEFT JOIN [送达方$] B ON A.送达方编码=B.送达方编码) where A.发货单号码>'' order by B.承运商

统计1.zip (264.44 KB, 下载次数: 1)
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-27 20:10 , Processed in 0.043137 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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