ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: zhaogang1960

[讨论] SQL顺序连接多个工作簿速度的疑问,解释合理加技术分2分

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2014-3-11 13:38 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
百度不到去谷歌 发表于 2014-3-11 13:28
一直在说set rs这句决定快慢的啊 现在就是讨论为什么这一句加不加会对效率产生影响 和执行循环都没关系的 ...

我不知道是我表述有问题还是什么,我一直在说显性声明和系统默认之间的差异。set rs 就是显性声明,是在内存里面执行,不声明的话系统默认在硬盘上做创建和记录。这可能就是这两者速度差异的来源。我们难道不是在讨论速度差异的来源,而是在讨论rs应该放在哪里?

TA的精华主题

TA的得分主题

发表于 2014-3-11 13:42 | 显示全部楼层
谁在试试前期绑定后的情况如何

TA的精华主题

TA的得分主题

发表于 2014-3-11 13:44 | 显示全部楼层
cnn放外面更耗时 我觉得是因为放在外面的话 每次循环都需要close
每次创建新的就不需要close 而是程序结束以后一起关闭 所以cnn在循环里面创建更快

TA的精华主题

TA的得分主题

发表于 2014-3-11 13:46 | 显示全部楼层
前期绑定和后期绑定没有时间差

TA的精华主题

TA的得分主题

发表于 2014-3-11 13:48 | 显示全部楼层
百度不到去谷歌 发表于 2014-3-11 13:38
我的测试结果
序号        仅一次set rs        循环set rs        无set rs
1        0.2890625        0.32421875        2.00390625

这没什么百思不得其解,我们两速度统计上的差异在于我的电脑配置可能要强于你的,所以我统计出来的速度比你的快很多。同样你看你的有rs的数度基本上就是恒定的,那是因为你内存速度就是这个速度,而没有rs的可能是你硬盘的速度,也是有规律的。你多实验几次检查他们之间的速度差,我想也可能会得出一个比较恒定的结果。

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-3-11 13:51 | 显示全部楼层
HHAAMM 发表于 2014-3-11 13:42
谁在试试前期绑定后的情况如何

前期绑定、后期绑定在1楼第二个附件中有
测试得知:
与绑定无关
与数据源类型无关,数据源改为access数据库效果相同
使用CopyFromRecordset rs  比  CopyFromRecordset cnn.Excute(SQL)要快很多

TA的精华主题

TA的得分主题

发表于 2014-3-11 13:51 | 显示全部楼层
没名字了 发表于 2014-3-11 13:48
这没什么百思不得其解,我们两速度统计上的差异在于我的电脑配置可能要强于你的,所以我统计出来的速度比 ...

晕 我是说看我本机的几个不同设置的速度对比 2个机器之前没什么好比的
我这3个不同的参数决定代码的不同写法导致的运行时间的差异 因为是本机运行 所以环境完全一致
这个硬件没关系 哎 说不清楚了  看有没有大神来终结和这个疑问了

TA的精华主题

TA的得分主题

发表于 2014-3-11 13:53 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
我想今天能在这里讨论,恰恰是因为类似于连接这样的问题在显性声明和不声明上比较容易遇到,赵版可以换个思路,不用连接问题,看看是否可以找出一个不声明的例子,比较一下其和事先声明之间的速度。我们正好也学学。

TA的精华主题

TA的得分主题

发表于 2014-3-11 13:55 | 显示全部楼层
本帖最后由 HHAAMM 于 2014-3-11 13:56 编辑

看来只能这么解释
1、记录集对象在完成后有个关闭的动作
2、ado打开快于关闭

要是这样的话,仔细想想也合理

TA的精华主题

TA的得分主题

发表于 2014-3-11 13:57 | 显示全部楼层
百度不到去谷歌 发表于 2014-3-11 13:51
晕 我是说看我本机的几个不同设置的速度对比 2个机器之前没什么好比的
我这3个不同的参数决定代码的不同 ...

该晕的应该是我,不说了。看来我的表达能力真的很有限。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-4-28 13:14 , Processed in 0.035758 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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