2009-06-03 96 views
5

我有一个网络共享上的DBF文件,我试图选择到SQL Server表中。SQL Server链接服务器查询耗尽内存

这个查询:

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

...抛出这个错误:

OLE DB提供程序 “MSDASQL” 链接服务器 “MyLinkedServer” 返回了消息“[微软] [ODBC Visual FoxPro驱动程序]不足够的内存用于文件映射。“
Msg 7399,Level 16,State 1,Line 11 链接服务器“MyLinkedServer”的OLE DB提供程序“MSDASQL”报告了错误。提供者耗尽内存。
Msg 7320,Level 16,State 2,Line 11 对于链接服务器“MyLinkedServer”,不能针对OLE DB提供程序“MSDASQL”执行查询“SELECT * FROM DP”。

我读过关于使用SYS(3050)释放FoxPro的内存。我无法弄清楚如何对链接的服务器执行该操作。

回答

4

链接服务器查询使用内存来自SQL Server缓冲池之外的一个称为memToLeave的区域,该区域用于提供连接线程以及现在的sql clr等。在32位上它的大小为384 MB,对于某些场景可能不足。

如果您需要调整您的SQL Server的内存配置,特别是memToLeave区,你会发现下面的博客上解释:

SQL Server Memory Configuration, Determining memToLeave Settings

+1

仅供参考 - 旧链接不再有效,增加了一个新的。 – Mansfield 2013-03-01 13:53:22