我在网络共享上有一个DBF文件,我正在尝试将其选入SQL Server表。
此查询:
SELECT * FROM OPENQUERY(MyLinkedServer, 'SELECT * FROM DP')
...抛出此错误:
链接服务器“MyLinkedServer”的OLE DB提供程序“MSDASQL”返回消息“[Microsoft] [ODBC Visual FoxPro驱动程序]没有足够的内存用于文件映射。”。
Msg 7399,Level 16,State 1,Line 11
链接服务器“MyLinkedServer”的OLE DB提供程序“MSDASQL”报告错误。提供商内存不足
Msg 7320,Level II,State 2,Line 11
对于链接服务器“MyLinkedServer”,无法对OLE DB提供程序“MSDASQL”执行查询“SELECT * FROM DP”。
我已经阅读过使用SYS(3050)来释放FoxPro的内存。我无法弄清楚如何针对链接服务器执行该操作。
答案 0 :(得分:4)
链接服务器查询使用名为memToLeave的SQL Server缓冲池之外的区域中的内存,该区域用于服务连接线程,现在还有sql clr。在32位上,它的大小为384 MB,这在某些情况下可能不合适。
如果您需要调整SQL Server内存配置,特别是memToLeave区域,您可以在以下博客中找到解释:
SQL Server Memory Configuration, Determining memToLeave Settings
答案 1 :(得分:0)
如果您运行的是SQL Server 2005甚至是2008 SP1或更早版本,则会出现内存泄漏问题的修补程序:http://support.microsoft.com/kb/974130