0

有没有人有任何提示可以帮助加快分解表并将大量记录插入新表的过程。

我目前正在使用 Access 和 VBA 将包含具有大字符串(700 + 个字符)的记录的表转换为一个新表,其中每个字符都有自己的记录(行)。我通过一次循环遍历字符串 1 个字符并使用 VBA 中的简单 DAO 插入新表来做到这一点。

目前我正在处理一小部分数据——300 条记录,每条记录有 700 个字符串。此过程大约需要 3 小时才能运行,因此不会扩展到包含 50,000 条记录的完整数据集!

表 1 结构

id - 字符串 001 - abcdefg

变成

表2结构

id - 字符串 001 - a 001 - b 001 - c 。. . . . .

我愿意接受任何可以改善事情的建议。

干杯

菲尔

4

3 回答 3

1

考虑这个使用 Northwind 的示例。使用 (Access = Long Integer)创建一个名为 Sequence 的表,INTEGER并使用 1 到 20 的值填充它(即 20 行表)。然后使用这个 ACE/Jet 语法 SQL 代码来解析员工姓氏的每个字母:

SELECT E1.EmployeeID, E1.LastName, S1.seq, MID(E1.LastName, S1.Seq, 1)
  FROM Employees AS E1, Sequence AS S1
 WHERE S1.seq BETWEEN 1 AND LEN(E1.LastName);
于 2009-05-19T10:40:41.250 回答
1

在进行批量插入时,通常可以通过删除表的索引、进行批量插入然后恢复索引来显着提高性能。在一种情况下,当向 MySQL 表中插入几百万条记录时,我看到这将运行时间从 17 小时缩短到大约 20 分钟。

我不能就 Access 提供具体建议(自 Access 2、15 年前左右我就没有使用过它),但一般技术几乎适用于任何数据库引擎。

于 2009-05-19T10:50:23.727 回答
0

我们有一个转置数据的例程。不确定代码是否经过优化,但文件压缩后运行速度明显加快。

大量删除和重建表会使 .mdb 文件显着膨胀。

于 2009-05-19T17:36:27.313 回答