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还没来得及试用。等有结果了再来汇
: 报。
相关阅读
wrt54gl 有必要升级到 e3000吗笔记本休眠情况下背来背去,是不是容易让硬盘坏?现在还有好用的免费 dynamic DNS 吗关于wrt610nv2(e3000)的散热和5ghzwindows7怎么远程关机?DNA计算重大突破,20年内淘汰现有电脑和网络借人气问个域名解析的问题Newegg business- $50 off $250 又来了请推荐一款商用笔记本电脑求推荐设备[请教]关于主机电源的问题LCD显示器背光问题HP 8560w和Dell M4600二选一PBO已经在新蛋上停售了这个能用到t61上面吗为什么我的网卡只有100MB的选项?msdn订阅用户,里面的那些key请问这款电脑有内置无线网卡么?NAS的硬盘是不是恨块坏[求推荐] $300-$500的家用台式机