Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3567|回复: 10

数据源 "现有文件"和"MS QUERY"的区别是什么?

[复制链接]
发表于 2011-7-10 18:44 | 显示全部楼层 |阅读模式
两种方法得到的结果是一样的.请问他们的区别是什么? 哪个效率更高?
如果用于vba SQL的话,除了连接字不同,还有其它不同的地方吗?

MS QUERY.JPG 现有连接.JPG




发表于 2011-7-10 19:18 | 显示全部楼层
个人认为,这两个图用了两种不同的数据库连接方式,
左图用了dsn文件,用的是odbc驱动;
右图用的是ole-db驱动。

如果说效率呢,个人认为应该是odbc和ole-db连接数据库的效率的问题,好像odbc的底层也是ole-db吧。一般来说,应该是ole-db效率高吧,不过也不一定,个人看法而已。

vba中使用sql,现在都是用的ado对象吧,ado对象里面的数据库连接,既可以使用odbc方式,也可以使用oledb方式,应该属于不同的技术吧,呵呵,只是表现出来是连接字不同而已吧。

回复

使用道具 举报

 楼主| 发表于 2011-7-10 20:21 | 显示全部楼层
回复 wbzxz 的帖子

我用了65535行数据做测试的结果.
两者性能差距比较大,一个耗时比另一个多25%.

和数据源的文件类型有关吗?
如果使用非微软的数据源,不知道结果如何?
test.rar (549.91 KB, 下载次数: 7)
回复

使用道具 举报

发表于 2011-7-10 21:06 | 显示全部楼层
呵呵,是吗,差那么多啊,哪个省时,哪个耗时啊?

回复

使用道具 举报

发表于 2011-7-10 21:11 | 显示全部楼层
要是说道非微软数据源,估计和底层驱动有关吧。
回复

使用道具 举报

 楼主| 发表于 2011-7-10 21:44 | 显示全部楼层
wbzxz 发表于 2011-7-10 21:06
呵呵,是吗,差那么多啊,哪个省时,哪个耗时啊?

你看一下我传的那个文件,2段测试代码都在里面.
回复

使用道具 举报

发表于 2011-7-10 22:13 | 显示全部楼层
呵呵,我看啦,真的很有意思。第一次运行ole-db比odbc时间少,剩下运行,都是odbc比oledb时间少啦。
回复

使用道具 举报

 楼主| 发表于 2011-7-10 22:50 | 显示全部楼层
回复 wbzxz 的帖子

我这里测了很多次,都是oledb快.我循环100次,只有第1次初始化的时候2个都耗时200多毫秒.
其它时候都是OLEDB70+ ODBC90+
难道这个还和机器有关? 或者是和excel版本有关?
我用的excel2010
回复

使用道具 举报

发表于 2011-7-11 08:30 | 显示全部楼层
呵呵,估计这已经涉及到了底层的东东,我反正是不懂。呵呵。
回复

使用道具 举报

 楼主| 发表于 2011-7-11 11:20 | 显示全部楼层
回复 wbzxz 的帖子

因为未设置excel2003的DSN,所以此前所做测试有误,它在oledb中excel8.0而在odbc中使用excel12.0

今天重新做了几个测试.在同一台机器上,使用不同的excel驱动及操作系统.发现这个确实和excel版本有关,且和操作系统有关.
测试结果见下图.


ODBC VS OLEDB.JPG




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-30 20:25 , Processed in 1.749749 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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