5

我在尝试将其选择到 SQL Server 表中的网络共享上有一个 DBF 文件。

这个查询:

SELECT * FROM OPENQUERY(MyLinkedServer, 'SELECT * FROM DP')

...引发此错误:

链接服务器“MyLinkedServer”的 OLE DB 提供程序“MSDASQL”返回消息“[Microsoft][ODBC Visual FoxPro Driver]没有足够的内存用于文件映射。”。
消息 7399,级别 16,状态 1,第 11 行链接服务器“MyLinkedServer”的 OLE DB 提供程序“MSDASQL”报告错误。提供程序内存不足。
消息 7320,级别 16,状态 2,第 11 行无法针对链接服务器“MyLinkedServer”的 OLE DB 提供程序“MSDASQL”执行查询“SELECT * FROM DP”。

我读过关于使用 SYS(3050) 来释放 FoxPro 的内存。不过,我不知道如何针对链接服务器执行该操作。

4

2 回答 2

4

链接服务器查询使用 SQL Server 缓冲池之外称为 memToLeave 的区域的内存,该区域用于为连接线程提供服务,现在还有 sql clr 等。在 32 位上,它的大小为 384 MB,这对于某些情况可能是不够的。

如果您需要调整 SQL Server 内存配置,尤其是 memToLeave 区域,您可以在以下博客中找到解释:

SQL Server 内存配置,确定 memToLeave 设置

于 2009-06-03T08:30:47.070 回答
0

如果您运行的是 SQL Server 2005 甚至 2008 SP1 或更早版本,则有针对内存泄漏问题的修补程序:http: //support.microsoft.com/kb/974130

于 2013-11-29T14:05:55.980 回答