SQL Server Linked Server查询内存不足

5

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

这个查询:

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

... 抛出此错误:

OLE DB 提供程序 "MSDASQL" 为链接服务器 "MyLinkedServer" 返回消息 "[Microsoft][ODBC Visual FoxPro Driver]Not enough memory for file map."。
Msg 7399,级别 16,状态 1,行 11 链接服务器 "MyLinkedServer" 的 OLE DB 提供程序 "MSDASQL" 报告了一个错误。该提供程序已用尽内存。
Msg 7320,级别 16,状态 2,行 11 无法对链接服务器 "MyLinkedServer" 的 OLE DB 提供程序 "MSDASQL" 执行查询 "SELECT * FROM DP"。

我已经阅读了关于使用 SYS(3050) 释放 FoxPro 内存的文章。但我无法想出如何针对链接服务器执行该命令。

2个回答

4
Linked server查询使用SQL Server缓冲池之外的一个名为memToLeave的内存区域,用于服务连接线程和sql clr等其他事项。在32位系统中,其大小为384 MB,可能不足以满足某些情况的需求。
如果您需要调整SQL Server内存配置,特别是memToLeave区域,您可以在以下博客中找到解释: SQL Server Memory Configuration, Determining memToLeave Settings

这是一段时间以前的事了。约翰,你认为这个建议仍然适用吗?从许多论坛来看,这似乎是一个经常出现的问题,而且仍然很像内存泄漏。目前,默认的MemToLeave对于前几个月的使用是可以的,但突然间,所有的Access链接服务器都没有足够的内存了。肯定有一种方法可以重新初始化只是池外内存和依赖它的进程。 - Adamantish
你使用的操作系统是什么?是64位的吗?你使用的SQL Server版本是什么等。 - John Sansom

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接