s*u
2 楼
要做如下的一个任务在本地一个大约700兆的access数据库里:
A表有2百万个记录,每个记录20个字段吧;B表有50万个记录每条记录10个字段。
需要针对A表里的每个记录一个字段值在B表中查询,根据查询结果做一些日期的逻辑判
断最后更新A表中的三个字段。
现在的电脑是这个配置:i5-2400 3.1G + 20G RAM + 512 SSD
写了段VBA做上面的任务,处理提条记录需要0.12秒。整整一个周末没跑完!
如果想显著提高速度(比如提高10倍)需要一个什么样的硬件配置?软件解决方法有啥
?Python会快么?本人斧头帮出身,望班上高手不吝赐教。
A表有2百万个记录,每个记录20个字段吧;B表有50万个记录每条记录10个字段。
需要针对A表里的每个记录一个字段值在B表中查询,根据查询结果做一些日期的逻辑判
断最后更新A表中的三个字段。
现在的电脑是这个配置:i5-2400 3.1G + 20G RAM + 512 SSD
写了段VBA做上面的任务,处理提条记录需要0.12秒。整整一个周末没跑完!
如果想显著提高速度(比如提高10倍)需要一个什么样的硬件配置?软件解决方法有啥
?Python会快么?本人斧头帮出身,望班上高手不吝赐教。
F*Q
4 楼
convert your db to sqlite, and write an efficient sql script.
you bottleneck is likely your algorithm and db engine, not the hardware. if
you don't address the problem at its origin, you will hit another bottleneck
even you upgrade to the latest hardware.
you bottleneck is likely your algorithm and db engine, not the hardware. if
you don't address the problem at its origin, you will hit another bottleneck
even you upgrade to the latest hardware.
A*j
6 楼
用Access自带的SQL语句去做查询和更新表的操作
不要用VBA,那样相当于又多了一层壳去操作数据
【在 s**u 的大作中提到】
: 要做如下的一个任务在本地一个大约700兆的access数据库里:
: A表有2百万个记录,每个记录20个字段吧;B表有50万个记录每条记录10个字段。
: 需要针对A表里的每个记录一个字段值在B表中查询,根据查询结果做一些日期的逻辑判
: 断最后更新A表中的三个字段。
: 现在的电脑是这个配置:i5-2400 3.1G + 20G RAM + 512 SSD
: 写了段VBA做上面的任务,处理提条记录需要0.12秒。整整一个周末没跑完!
: 如果想显著提高速度(比如提高10倍)需要一个什么样的硬件配置?软件解决方法有啥
: ?Python会快么?本人斧头帮出身,望班上高手不吝赐教。
不要用VBA,那样相当于又多了一层壳去操作数据
【在 s**u 的大作中提到】
: 要做如下的一个任务在本地一个大约700兆的access数据库里:
: A表有2百万个记录,每个记录20个字段吧;B表有50万个记录每条记录10个字段。
: 需要针对A表里的每个记录一个字段值在B表中查询,根据查询结果做一些日期的逻辑判
: 断最后更新A表中的三个字段。
: 现在的电脑是这个配置:i5-2400 3.1G + 20G RAM + 512 SSD
: 写了段VBA做上面的任务,处理提条记录需要0.12秒。整整一个周末没跑完!
: 如果想显著提高速度(比如提高10倍)需要一个什么样的硬件配置?软件解决方法有啥
: ?Python会快么?本人斧头帮出身,望班上高手不吝赐教。
f*4
7 楼
前二天去越南超 市也是看到很多人,还奇怪原因呢。后来才知道他们也过年
d*a
8 楼
关键字段设index了吗?
【在 s**u 的大作中提到】
: 要做如下的一个任务在本地一个大约700兆的access数据库里:
: A表有2百万个记录,每个记录20个字段吧;B表有50万个记录每条记录10个字段。
: 需要针对A表里的每个记录一个字段值在B表中查询,根据查询结果做一些日期的逻辑判
: 断最后更新A表中的三个字段。
: 现在的电脑是这个配置:i5-2400 3.1G + 20G RAM + 512 SSD
: 写了段VBA做上面的任务,处理提条记录需要0.12秒。整整一个周末没跑完!
: 如果想显著提高速度(比如提高10倍)需要一个什么样的硬件配置?软件解决方法有啥
: ?Python会快么?本人斧头帮出身,望班上高手不吝赐教。
【在 s**u 的大作中提到】
: 要做如下的一个任务在本地一个大约700兆的access数据库里:
: A表有2百万个记录,每个记录20个字段吧;B表有50万个记录每条记录10个字段。
: 需要针对A表里的每个记录一个字段值在B表中查询,根据查询结果做一些日期的逻辑判
: 断最后更新A表中的三个字段。
: 现在的电脑是这个配置:i5-2400 3.1G + 20G RAM + 512 SSD
: 写了段VBA做上面的任务,处理提条记录需要0.12秒。整整一个周末没跑完!
: 如果想显著提高速度(比如提高10倍)需要一个什么样的硬件配置?软件解决方法有啥
: ?Python会快么?本人斧头帮出身,望班上高手不吝赐教。
t*z
10 楼
感觉可以用一个稍微复杂的SQL命令就搞定的,性能会大大提高。
【在 s**u 的大作中提到】
: 要做如下的一个任务在本地一个大约700兆的access数据库里:
: A表有2百万个记录,每个记录20个字段吧;B表有50万个记录每条记录10个字段。
: 需要针对A表里的每个记录一个字段值在B表中查询,根据查询结果做一些日期的逻辑判
: 断最后更新A表中的三个字段。
: 现在的电脑是这个配置:i5-2400 3.1G + 20G RAM + 512 SSD
: 写了段VBA做上面的任务,处理提条记录需要0.12秒。整整一个周末没跑完!
: 如果想显著提高速度(比如提高10倍)需要一个什么样的硬件配置?软件解决方法有啥
: ?Python会快么?本人斧头帮出身,望班上高手不吝赐教。
【在 s**u 的大作中提到】
: 要做如下的一个任务在本地一个大约700兆的access数据库里:
: A表有2百万个记录,每个记录20个字段吧;B表有50万个记录每条记录10个字段。
: 需要针对A表里的每个记录一个字段值在B表中查询,根据查询结果做一些日期的逻辑判
: 断最后更新A表中的三个字段。
: 现在的电脑是这个配置:i5-2400 3.1G + 20G RAM + 512 SSD
: 写了段VBA做上面的任务,处理提条记录需要0.12秒。整整一个周末没跑完!
: 如果想显著提高速度(比如提高10倍)需要一个什么样的硬件配置?软件解决方法有啥
: ?Python会快么?本人斧头帮出身,望班上高手不吝赐教。
s*l
11 楼
10里之外。。这都可以挺自家门口了吧?
s*u
12 楼
十分感谢楼上对斧头邦的栽培!看来各位觉得硬件OK,应该是软件问题。
更新一下结果:
SQL我连斧头帮都算不上,硬着头皮写了一个join的东西,基本达到了VBA的效果。运行
时间是。。。惊人的!
居然3分钟不到!!!!3分钟不到!!!3分钟不到!!!
3楼说VBA要加一层壳,这个我完全同意。这个壳能慢这么多?从60几个小时到3分钟。
我感觉VBA纯粹是一条一条的过,A表逐条需要.edit,然后.update。SQL好想是批处理了?
4楼谈到关键字索引。比如说我在B表的Field_B中查找A表的Field_A中的数值。您的意
思是把B表按Field_B排序么?
还请各位不吝赐教!
更新一下结果:
SQL我连斧头帮都算不上,硬着头皮写了一个join的东西,基本达到了VBA的效果。运行
时间是。。。惊人的!
居然3分钟不到!!!!3分钟不到!!!3分钟不到!!!
3楼说VBA要加一层壳,这个我完全同意。这个壳能慢这么多?从60几个小时到3分钟。
我感觉VBA纯粹是一条一条的过,A表逐条需要.edit,然后.update。SQL好想是批处理了?
4楼谈到关键字索引。比如说我在B表的Field_B中查找A表的Field_A中的数值。您的意
思是把B表按Field_B排序么?
还请各位不吝赐教!
F*Q
13 楼
了?
https://www.progress.com/tutorials/odbc/using-indexes
again, if you convert your database to sqlite, I am sure you can cut the run
-time even more. 3 min still sounds high for your db size.
free converters are available at
https://www.sqlite.org/cvstrac/wiki?p=ConverterTools
just search "MDB"
【在 s**u 的大作中提到】
: 十分感谢楼上对斧头邦的栽培!看来各位觉得硬件OK,应该是软件问题。
: 更新一下结果:
: SQL我连斧头帮都算不上,硬着头皮写了一个join的东西,基本达到了VBA的效果。运行
: 时间是。。。惊人的!
: 居然3分钟不到!!!!3分钟不到!!!3分钟不到!!!
: 3楼说VBA要加一层壳,这个我完全同意。这个壳能慢这么多?从60几个小时到3分钟。
: 我感觉VBA纯粹是一条一条的过,A表逐条需要.edit,然后.update。SQL好想是批处理了?
: 4楼谈到关键字索引。比如说我在B表的Field_B中查找A表的Field_A中的数值。您的意
: 思是把B表按Field_B排序么?
: 还请各位不吝赐教!
t*u
14 楼
你不会是对数据库用vba的loop吧?
了?
----
☆ 买买提 For Windows 10 -- ☆ 大本出品 ☆
【在 s**u 的大作中提到】
: 十分感谢楼上对斧头邦的栽培!看来各位觉得硬件OK,应该是软件问题。
: 更新一下结果:
: SQL我连斧头帮都算不上,硬着头皮写了一个join的东西,基本达到了VBA的效果。运行
: 时间是。。。惊人的!
: 居然3分钟不到!!!!3分钟不到!!!3分钟不到!!!
: 3楼说VBA要加一层壳,这个我完全同意。这个壳能慢这么多?从60几个小时到3分钟。
: 我感觉VBA纯粹是一条一条的过,A表逐条需要.edit,然后.update。SQL好想是批处理了?
: 4楼谈到关键字索引。比如说我在B表的Field_B中查找A表的Field_A中的数值。您的意
: 思是把B表按Field_B排序么?
: 还请各位不吝赐教!
了?
----
☆ 买买提 For Windows 10 -- ☆ 大本出品 ☆
【在 s**u 的大作中提到】
: 十分感谢楼上对斧头邦的栽培!看来各位觉得硬件OK,应该是软件问题。
: 更新一下结果:
: SQL我连斧头帮都算不上,硬着头皮写了一个join的东西,基本达到了VBA的效果。运行
: 时间是。。。惊人的!
: 居然3分钟不到!!!!3分钟不到!!!3分钟不到!!!
: 3楼说VBA要加一层壳,这个我完全同意。这个壳能慢这么多?从60几个小时到3分钟。
: 我感觉VBA纯粹是一条一条的过,A表逐条需要.edit,然后.update。SQL好想是批处理了?
: 4楼谈到关键字索引。比如说我在B表的Field_B中查找A表的Field_A中的数值。您的意
: 思是把B表按Field_B排序么?
: 还请各位不吝赐教!
s*u
16 楼
要做如下的一个任务在本地一个大约700兆的access数据库里:
A表有2百万个记录,每个记录20个字段吧;B表有50万个记录每条记录10个字段。
需要针对A表里的每个记录一个字段值在B表中查询,根据查询结果做一些日期的逻辑判
断最后更新A表中的三个字段。
现在的电脑是这个配置:i5-2400 3.1G + 20G RAM + 512 SSD
写了段VBA做上面的任务,处理提条记录需要0.12秒。整整一个周末没跑完!
如果想显著提高速度(比如提高10倍)需要一个什么样的硬件配置?软件解决方法有啥
?Python会快么?本人斧头帮出身,望班上高手不吝赐教。
A表有2百万个记录,每个记录20个字段吧;B表有50万个记录每条记录10个字段。
需要针对A表里的每个记录一个字段值在B表中查询,根据查询结果做一些日期的逻辑判
断最后更新A表中的三个字段。
现在的电脑是这个配置:i5-2400 3.1G + 20G RAM + 512 SSD
写了段VBA做上面的任务,处理提条记录需要0.12秒。整整一个周末没跑完!
如果想显著提高速度(比如提高10倍)需要一个什么样的硬件配置?软件解决方法有啥
?Python会快么?本人斧头帮出身,望班上高手不吝赐教。
F*Q
17 楼
convert your db to sqlite, and write an efficient sql script.
you bottleneck is likely your algorithm and db engine, not the hardware. if
you don't address the problem at its origin, you will hit another bottleneck
even you upgrade to the latest hardware.
you bottleneck is likely your algorithm and db engine, not the hardware. if
you don't address the problem at its origin, you will hit another bottleneck
even you upgrade to the latest hardware.
A*j
18 楼
用Access自带的SQL语句去做查询和更新表的操作
不要用VBA,那样相当于又多了一层壳去操作数据
【在 s**u 的大作中提到】
: 要做如下的一个任务在本地一个大约700兆的access数据库里:
: A表有2百万个记录,每个记录20个字段吧;B表有50万个记录每条记录10个字段。
: 需要针对A表里的每个记录一个字段值在B表中查询,根据查询结果做一些日期的逻辑判
: 断最后更新A表中的三个字段。
: 现在的电脑是这个配置:i5-2400 3.1G + 20G RAM + 512 SSD
: 写了段VBA做上面的任务,处理提条记录需要0.12秒。整整一个周末没跑完!
: 如果想显著提高速度(比如提高10倍)需要一个什么样的硬件配置?软件解决方法有啥
: ?Python会快么?本人斧头帮出身,望班上高手不吝赐教。
不要用VBA,那样相当于又多了一层壳去操作数据
【在 s**u 的大作中提到】
: 要做如下的一个任务在本地一个大约700兆的access数据库里:
: A表有2百万个记录,每个记录20个字段吧;B表有50万个记录每条记录10个字段。
: 需要针对A表里的每个记录一个字段值在B表中查询,根据查询结果做一些日期的逻辑判
: 断最后更新A表中的三个字段。
: 现在的电脑是这个配置:i5-2400 3.1G + 20G RAM + 512 SSD
: 写了段VBA做上面的任务,处理提条记录需要0.12秒。整整一个周末没跑完!
: 如果想显著提高速度(比如提高10倍)需要一个什么样的硬件配置?软件解决方法有啥
: ?Python会快么?本人斧头帮出身,望班上高手不吝赐教。
d*a
19 楼
关键字段设index了吗?
【在 s**u 的大作中提到】
: 要做如下的一个任务在本地一个大约700兆的access数据库里:
: A表有2百万个记录,每个记录20个字段吧;B表有50万个记录每条记录10个字段。
: 需要针对A表里的每个记录一个字段值在B表中查询,根据查询结果做一些日期的逻辑判
: 断最后更新A表中的三个字段。
: 现在的电脑是这个配置:i5-2400 3.1G + 20G RAM + 512 SSD
: 写了段VBA做上面的任务,处理提条记录需要0.12秒。整整一个周末没跑完!
: 如果想显著提高速度(比如提高10倍)需要一个什么样的硬件配置?软件解决方法有啥
: ?Python会快么?本人斧头帮出身,望班上高手不吝赐教。
【在 s**u 的大作中提到】
: 要做如下的一个任务在本地一个大约700兆的access数据库里:
: A表有2百万个记录,每个记录20个字段吧;B表有50万个记录每条记录10个字段。
: 需要针对A表里的每个记录一个字段值在B表中查询,根据查询结果做一些日期的逻辑判
: 断最后更新A表中的三个字段。
: 现在的电脑是这个配置:i5-2400 3.1G + 20G RAM + 512 SSD
: 写了段VBA做上面的任务,处理提条记录需要0.12秒。整整一个周末没跑完!
: 如果想显著提高速度(比如提高10倍)需要一个什么样的硬件配置?软件解决方法有啥
: ?Python会快么?本人斧头帮出身,望班上高手不吝赐教。
t*z
20 楼
感觉可以用一个稍微复杂的SQL命令就搞定的,性能会大大提高。
【在 s**u 的大作中提到】
: 要做如下的一个任务在本地一个大约700兆的access数据库里:
: A表有2百万个记录,每个记录20个字段吧;B表有50万个记录每条记录10个字段。
: 需要针对A表里的每个记录一个字段值在B表中查询,根据查询结果做一些日期的逻辑判
: 断最后更新A表中的三个字段。
: 现在的电脑是这个配置:i5-2400 3.1G + 20G RAM + 512 SSD
: 写了段VBA做上面的任务,处理提条记录需要0.12秒。整整一个周末没跑完!
: 如果想显著提高速度(比如提高10倍)需要一个什么样的硬件配置?软件解决方法有啥
: ?Python会快么?本人斧头帮出身,望班上高手不吝赐教。
【在 s**u 的大作中提到】
: 要做如下的一个任务在本地一个大约700兆的access数据库里:
: A表有2百万个记录,每个记录20个字段吧;B表有50万个记录每条记录10个字段。
: 需要针对A表里的每个记录一个字段值在B表中查询,根据查询结果做一些日期的逻辑判
: 断最后更新A表中的三个字段。
: 现在的电脑是这个配置:i5-2400 3.1G + 20G RAM + 512 SSD
: 写了段VBA做上面的任务,处理提条记录需要0.12秒。整整一个周末没跑完!
: 如果想显著提高速度(比如提高10倍)需要一个什么样的硬件配置?软件解决方法有啥
: ?Python会快么?本人斧头帮出身,望班上高手不吝赐教。
s*u
21 楼
十分感谢楼上对斧头邦的栽培!看来各位觉得硬件OK,应该是软件问题。
更新一下结果:
SQL我连斧头帮都算不上,硬着头皮写了一个join的东西,基本达到了VBA的效果。运行
时间是。。。惊人的!
居然3分钟不到!!!!3分钟不到!!!3分钟不到!!!
3楼说VBA要加一层壳,这个我完全同意。这个壳能慢这么多?从60几个小时到3分钟。
我感觉VBA纯粹是一条一条的过,A表逐条需要.edit,然后.update。SQL好想是批处理了?
4楼谈到关键字索引。比如说我在B表的Field_B中查找A表的Field_A中的数值。您的意
思是把B表按Field_B排序么?
还请各位不吝赐教!
更新一下结果:
SQL我连斧头帮都算不上,硬着头皮写了一个join的东西,基本达到了VBA的效果。运行
时间是。。。惊人的!
居然3分钟不到!!!!3分钟不到!!!3分钟不到!!!
3楼说VBA要加一层壳,这个我完全同意。这个壳能慢这么多?从60几个小时到3分钟。
我感觉VBA纯粹是一条一条的过,A表逐条需要.edit,然后.update。SQL好想是批处理了?
4楼谈到关键字索引。比如说我在B表的Field_B中查找A表的Field_A中的数值。您的意
思是把B表按Field_B排序么?
还请各位不吝赐教!
F*Q
22 楼
了?
https://www.progress.com/tutorials/odbc/using-indexes
again, if you convert your database to sqlite, I am sure you can cut the run
-time even more. 3 min still sounds high for your db size.
free converters are available at
https://www.sqlite.org/cvstrac/wiki?p=ConverterTools
just search "MDB"
【在 s**u 的大作中提到】
: 十分感谢楼上对斧头邦的栽培!看来各位觉得硬件OK,应该是软件问题。
: 更新一下结果:
: SQL我连斧头帮都算不上,硬着头皮写了一个join的东西,基本达到了VBA的效果。运行
: 时间是。。。惊人的!
: 居然3分钟不到!!!!3分钟不到!!!3分钟不到!!!
: 3楼说VBA要加一层壳,这个我完全同意。这个壳能慢这么多?从60几个小时到3分钟。
: 我感觉VBA纯粹是一条一条的过,A表逐条需要.edit,然后.update。SQL好想是批处理了?
: 4楼谈到关键字索引。比如说我在B表的Field_B中查找A表的Field_A中的数值。您的意
: 思是把B表按Field_B排序么?
: 还请各位不吝赐教!
t*u
23 楼
你不会是对数据库用vba的loop吧?
了?
----
☆ 买买提 For Windows 10 -- ☆ 大本出品 ☆
【在 s**u 的大作中提到】
: 十分感谢楼上对斧头邦的栽培!看来各位觉得硬件OK,应该是软件问题。
: 更新一下结果:
: SQL我连斧头帮都算不上,硬着头皮写了一个join的东西,基本达到了VBA的效果。运行
: 时间是。。。惊人的!
: 居然3分钟不到!!!!3分钟不到!!!3分钟不到!!!
: 3楼说VBA要加一层壳,这个我完全同意。这个壳能慢这么多?从60几个小时到3分钟。
: 我感觉VBA纯粹是一条一条的过,A表逐条需要.edit,然后.update。SQL好想是批处理了?
: 4楼谈到关键字索引。比如说我在B表的Field_B中查找A表的Field_A中的数值。您的意
: 思是把B表按Field_B排序么?
: 还请各位不吝赐教!
了?
----
☆ 买买提 For Windows 10 -- ☆ 大本出品 ☆
【在 s**u 的大作中提到】
: 十分感谢楼上对斧头邦的栽培!看来各位觉得硬件OK,应该是软件问题。
: 更新一下结果:
: SQL我连斧头帮都算不上,硬着头皮写了一个join的东西,基本达到了VBA的效果。运行
: 时间是。。。惊人的!
: 居然3分钟不到!!!!3分钟不到!!!3分钟不到!!!
: 3楼说VBA要加一层壳,这个我完全同意。这个壳能慢这么多?从60几个小时到3分钟。
: 我感觉VBA纯粹是一条一条的过,A表逐条需要.edit,然后.update。SQL好想是批处理了?
: 4楼谈到关键字索引。比如说我在B表的Field_B中查找A表的Field_A中的数值。您的意
: 思是把B表按Field_B排序么?
: 还请各位不吝赐教!
p*t
26 楼
大量数据处理,表连接和索引效率最高,循环处理效率最慢,这个是SQL程序员最基本
的知识。VBA可能也有相应的表连接操作指令,处理这点数据量分分钟的事。
的知识。VBA可能也有相应的表连接操作指令,处理这点数据量分分钟的事。
d*a
28 楼
不加index好比在一本书里顺序阅读查找一个词
加了index当然快多了
如果你就是自己用,看不出有什么必要转成SQLite. 用过这么多数据库,最好用的是
access和sql server
: 谢谢您的指点。对关键字加了索引之后,速度提升了将近240倍!单条记录处理
时间由0
: .12秒提高到了0.00055秒!
: 对FangQ的指点和信息一并致谢,您提到的Sqlight还没来得及试用。等有结果了
再来汇
: 报。
【在 s**u 的大作中提到】
: 谢谢您的指点。对关键字加了索引之后,速度提升了将近240倍!单条记录处理时间由0
: .12秒提高到了0.00055秒!
: 对FangQ的指点和信息一并致谢,您提到的Sqlight还没来得及试用。等有结果了再来汇
: 报。
加了index当然快多了
如果你就是自己用,看不出有什么必要转成SQLite. 用过这么多数据库,最好用的是
access和sql server
: 谢谢您的指点。对关键字加了索引之后,速度提升了将近240倍!单条记录处理
时间由0
: .12秒提高到了0.00055秒!
: 对FangQ的指点和信息一并致谢,您提到的Sqlight还没来得及试用。等有结果了
再来汇
: 报。
【在 s**u 的大作中提到】
: 谢谢您的指点。对关键字加了索引之后,速度提升了将近240倍!单条记录处理时间由0
: .12秒提高到了0.00055秒!
: 对FangQ的指点和信息一并致谢,您提到的Sqlight还没来得及试用。等有结果了再来汇
: 报。
相关阅读
发一个比较严肃的LCD测试网站请教移动硬盘恢复数据一般地说,是USB的无线网卡好还是pci的无线网卡好????发现一个奇怪的现象新蛋那个Sunbeam cooler如何大虾们看看这个千兆网的问题有没有同仁们搞了那个LINKSTATION LIVE 1TB?家里局域网内传输速度慢t400休眠,电池依然被耗尽。。。Lenovo T500 战斗经历any good deal for Dell laptop recently?IBM T60,CPU温度平时就在75摄氏度,太高了?Lenovo IdeaPad S10-2 unboxed26号开始买机器 vista 免费升 Windows 7Athlon II x2要上市了抗衡ati 9.6 nvida粉丝的190驱动闪亮登场DEALSEA上的电视卡不错,要买的上了FUJITSU T5010 怎么样need 6 hrs to re-install8hr 的 Netbook 来了。720p, 500GB, BenQ