由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Hardware版 - 配个处理access的电脑求建议
相关主题
2,000,000封email,怎么处理好?Question about I/O speed
WD Elements 1.5T外挂硬盘被摔了cable modem 和 wireless router, 二合一的好还是分开的好?
【转帖】Linode 被 Hack 事件始末请帮尽快介绍一款有USB口的无线路由器
请推荐个极便宜的solid state hard drive如果i7-2600K 不用SSD的话会慢很多吗?
配了一台 E5 2658 ES v3的机器Customized RT-N56U firmware
问个 windows 10 问题请推荐用于统计计算的Desktop 包子 (转载)
4k电视当电脑显示器有啥不好么?AMD A4, E1, E2 Processer?
无线网络弱问Off-site backup of Synology NAS to CrashPlan cloud
相关话题的讨论汇总
话题: vba话题: sql话题: 记录话题: db话题: 字段
进入Hardware版参与讨论
1 (共1页)
s**u
发帖数: 105
1
要做如下的一个任务在本地一个大约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***Q
发帖数: 6599
2
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.
A*j
发帖数: 12
3
用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会快么?本人斧头帮出身,望班上高手不吝赐教。

d******a
发帖数: 32122
4
关键字段设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会快么?本人斧头帮出身,望班上高手不吝赐教。

t*****z
发帖数: 1598
5
感觉可以用一个稍微复杂的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
发帖数: 105
6
十分感谢楼上对斧头邦的栽培!看来各位觉得硬件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排序么?
还请各位不吝赐教!
F***Q
发帖数: 6599
7

了?
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
发帖数: 26311
8
你不会是对数据库用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排序么?
: 还请各位不吝赐教!

s**u
发帖数: 105
9
正是!

【在 t*********u 的大作中提到】
: 你不会是对数据库用vba的loop吧?
:
: 了?
: ----
: ☆ 买买提 For Windows 10 -- ☆ 大本出品 ☆

s**u
发帖数: 105
10
要做如下的一个任务在本地一个大约700兆的access数据库里:
A表有2百万个记录,每个记录20个字段吧;B表有50万个记录每条记录10个字段。
需要针对A表里的每个记录一个字段值在B表中查询,根据查询结果做一些日期的逻辑判
断最后更新A表中的三个字段。
现在的电脑是这个配置:i5-2400 3.1G + 20G RAM + 512 SSD
写了段VBA做上面的任务,处理提条记录需要0.12秒。整整一个周末没跑完!
如果想显著提高速度(比如提高10倍)需要一个什么样的硬件配置?软件解决方法有啥
?Python会快么?本人斧头帮出身,望班上高手不吝赐教。
相关主题
问个 windows 10 问题Question about I/O speed
4k电视当电脑显示器有啥不好么?cable modem 和 wireless router, 二合一的好还是分开的好?
无线网络弱问请帮尽快介绍一款有USB口的无线路由器
进入Hardware版参与讨论
F***Q
发帖数: 6599
11
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.
A*j
发帖数: 12
12
用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会快么?本人斧头帮出身,望班上高手不吝赐教。

d******a
发帖数: 32122
13
关键字段设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会快么?本人斧头帮出身,望班上高手不吝赐教。

t*****z
发帖数: 1598
14
感觉可以用一个稍微复杂的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
发帖数: 105
15
十分感谢楼上对斧头邦的栽培!看来各位觉得硬件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排序么?
还请各位不吝赐教!
F***Q
发帖数: 6599
16

了?
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
发帖数: 26311
17
你不会是对数据库用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排序么?
: 还请各位不吝赐教!

s**u
发帖数: 105
18
正是!

【在 t*********u 的大作中提到】
: 你不会是对数据库用vba的loop吧?
:
: 了?
: ----
: ☆ 买买提 For Windows 10 -- ☆ 大本出品 ☆

s**u
发帖数: 105
19
谢谢您的指点。对关键字加了索引之后,速度提升了将近240倍!单条记录处理时间由0
.12秒提高到了0.00055秒!
对FangQ的指点和信息一并致谢,您提到的Sqlight还没来得及试用。等有结果了再来汇
报。

【在 d******a 的大作中提到】
: 关键字段设index了吗?
p******t
发帖数: 156
20
大量数据处理,表连接和索引效率最高,循环处理效率最慢,这个是SQL程序员最基本
的知识。VBA可能也有相应的表连接操作指令,处理这点数据量分分钟的事。
d******a
发帖数: 32122
21
vba可以直接用SQL,所以VBA本身不会怎么慢,即便加了层壳,也是薄如蝉翼


: 大量数据处理,表连接和索引效率最高,循环处理效率最慢,这个是SQL程序员
最基本

: 的知识。VBA可能也有相应的表连接操作指令,处理这点数据量分分钟的事。



【在 p******t 的大作中提到】
: 大量数据处理,表连接和索引效率最高,循环处理效率最慢,这个是SQL程序员最基本
: 的知识。VBA可能也有相应的表连接操作指令,处理这点数据量分分钟的事。

d******a
发帖数: 32122
22
不加index好比在一本书里顺序阅读查找一个词
加了index当然快多了
如果你就是自己用,看不出有什么必要转成SQLite. 用过这么多数据库,最好用的是
access和sql server


: 谢谢您的指点。对关键字加了索引之后,速度提升了将近240倍!单条记录处理
时间由0

: .12秒提高到了0.00055秒!

: 对FangQ的指点和信息一并致谢,您提到的Sqlight还没来得及试用。等有结果了
再来汇

: 报。



【在 s**u 的大作中提到】
: 谢谢您的指点。对关键字加了索引之后,速度提升了将近240倍!单条记录处理时间由0
: .12秒提高到了0.00055秒!
: 对FangQ的指点和信息一并致谢,您提到的Sqlight还没来得及试用。等有结果了再来汇
: 报。

1 (共1页)
进入Hardware版参与讨论
相关主题
Off-site backup of Synology NAS to CrashPlan cloud配了一台 E5 2658 ES v3的机器
路由器上插移动硬盘速度一般有多少?问个 windows 10 问题
Cyberpower 6800K + GTX 1080 1557$ 的deal怎么样?4k电视当电脑显示器有啥不好么?
请教G3258机器升级问题无线网络弱问
2,000,000封email,怎么处理好?Question about I/O speed
WD Elements 1.5T外挂硬盘被摔了cable modem 和 wireless router, 二合一的好还是分开的好?
【转帖】Linode 被 Hack 事件始末请帮尽快介绍一款有USB口的无线路由器
请推荐个极便宜的solid state hard drive如果i7-2600K 不用SSD的话会慢很多吗?
相关话题的讨论汇总
话题: vba话题: sql话题: 记录话题: db话题: 字段