2009-06-03 39 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