导出到MS Access的SAS错误:超出系统资源

时间:2016-09-21 16:44:49

标签: ms-access sas

作为自动每周流程的一部分,我有3个SAS数据集作为新表中的3个表导出到MS Access。每个数据集大约有150万条记录,总数大约为670Mb。

我无法弄清楚原因,但是SAS无法经常导出数据,但是当它出现时会出现此错误:

ERROR: CLI execute error: [Microsoft][ODBC Microsoft Access Driver] System resource exceeded.

产生该错误的代码(对每个数据集运行一次,只更改每个数据集的数据名称和数据表):

PROC EXPORT DATA = &_dataname_.
    OUTTABLE = "&_datatable_."
    DBMS = ACCESSCS REPLACE;
DATABASE = "&_databasename_..mdb";
RUN;

我知道Access的限制为2GB,但数据集并不接近该大小。我还看到有32,000条记录的记录限制,但我可以经常输出比这更多的没有任何问题,所以我不确定这也是原因。但是,我确实怀疑它必须与数据的大小有关,因为在将第二个或第三个表添加到数据库之后它通常只会抛出该错误。

所以,我的问题分为两部分:

  • 为什么会这样?

  • 如果不使用像MySQL这样的其他数据库,我该如何解决问题/解决它?

感谢您提供的任何帮助。非常感谢!

1 个答案:

答案 0 :(得分:0)

这不是一个记录限制问题,但几乎可以肯定Access的数据太多而无法合理处理。 SAS中的“X”MB不一定会转换为Access中的“X”MB。并且,Access不是为处理数百万行数据而设计的(当然这并不能阻止人们尝试)。

当我定期开发Access数据库时,我发现表中包含二十多个员工地址和联系信息的行中超过100,000行的任何内容都会导致性能下降。

如果您可以使用MySQL或SQL Server,那么我就会采用这种方式......从长远来看,您不会感到头疼,而且可扩展性也更好。