Access 2010 错误 3035 系统资源超出更新查询
Access 2010 Error 3035 System Resources Exceeded on Update Query
我有一个例程可以导入一个 481 MB 的文本文件并对其执行一些转换。
例程在一个工作站的这个代码块上崩溃(但在我们的其他工作站上工作正常):
' All of the eleven-digit telephone numbers encountered end in 0. If we get rid of the ending 0,
' we may end up with a valid telephone number.
SQLString = "UPDATE " & sTableName & _
" SET [ServAddrPhone] = Int([ServAddrPhone]/10) WHERE [ServAddrPhone] >9999999999 ; "
RoboCallDB.Execute SQLString, dbFailOnError
[ServAddrPhone] 是双重的。代码块扫描大约 800,000 条记录以查找大于 10 位的电话号码,通常会找到大约 3,000 条符合更新条件的记录。
如何优化此代码以避免错误 3035?谢谢!
好的,假设所有机器的资源大致相同,我会尝试:
- 将 480 MB 的文本文件拆分为两个 240 MB 的文件。
- 查看您的问题机器是否可以处理较小的数据块。
如果这行得通,我会编写代码来拆分这个文件,然后分别导入每个部分。
注意:每次加载前请务必退出并重新进入Access。
我在 运行 的大型 ETL 过程中遇到了这个确切的错误,最后我将过程分成更小的块来解决这个问题。
这让我认为 'Local Access Application Resources' 才是真正被超过的,而不是 'System Resources',正如错误所声称的那样。
我知道这个建议可能会让您难以实施,但该文本文件迟早会变得大到足以让您的任何计算机窒息。
我有一个例程可以导入一个 481 MB 的文本文件并对其执行一些转换。
例程在一个工作站的这个代码块上崩溃(但在我们的其他工作站上工作正常):
' All of the eleven-digit telephone numbers encountered end in 0. If we get rid of the ending 0,
' we may end up with a valid telephone number.
SQLString = "UPDATE " & sTableName & _
" SET [ServAddrPhone] = Int([ServAddrPhone]/10) WHERE [ServAddrPhone] >9999999999 ; "
RoboCallDB.Execute SQLString, dbFailOnError
[ServAddrPhone] 是双重的。代码块扫描大约 800,000 条记录以查找大于 10 位的电话号码,通常会找到大约 3,000 条符合更新条件的记录。
如何优化此代码以避免错误 3035?谢谢!
好的,假设所有机器的资源大致相同,我会尝试:
- 将 480 MB 的文本文件拆分为两个 240 MB 的文件。
- 查看您的问题机器是否可以处理较小的数据块。
如果这行得通,我会编写代码来拆分这个文件,然后分别导入每个部分。
注意:每次加载前请务必退出并重新进入Access。
我在 运行 的大型 ETL 过程中遇到了这个确切的错误,最后我将过程分成更小的块来解决这个问题。
这让我认为 'Local Access Application Resources' 才是真正被超过的,而不是 'System Resources',正如错误所声称的那样。
我知道这个建议可能会让您难以实施,但该文本文件迟早会变得大到足以让您的任何计算机窒息。