Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

SQL Server Linked Server query running out of memory

I have a DBF file on a network share that I'm trying to select into a SQL Server table.

This query:

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

... throws this error:

OLE DB provider "MSDASQL" for linked server "MyLinkedServer" returned message "[Microsoft][ODBC Visual FoxPro Driver]Not enough memory for file map.".
Msg 7399, Level 16, State 1, Line 11 The OLE DB provider "MSDASQL" for linked server "MyLinkedServer" reported an error. The provider ran out of memory.
Msg 7320, Level 16, State 2, Line 11 Cannot execute the query "SELECT * FROM DP" against OLE DB provider "MSDASQL" for linked server "MyLinkedServer".

I've read about using SYS(3050) to release FoxPro's memory. I can't figure out how to execute that against the linked server though.

like image 732
Laran Evans Avatar asked Oct 14 '22 15:10

Laran Evans


1 Answers

Linked server queries use memory from an area outside of the SQL Server buffer pool called memToLeave, which is used for servicing connection threads and now the sql clr amongs other things. On 32-bit it's 384 MB in size which can be inadequate for some scenarios.

If you need to adjust your SQL Server Memory configuration and in particular the memToLeave area you will find an explanation on the following blog:

SQL Server Memory Configuration, Determining memToLeave Settings

like image 60
John Sansom Avatar answered Oct 20 '22 23:10

John Sansom