Re: Memory usage with linked servers
- From: Erland Sommarskog <esquel@xxxxxxxxxxxxx>
- Date: Fri, 14 Jul 2006 19:30:56 +0000 (UTC)
Mark (swozz_@xxxxxxxxxxx) writes:
So for linked servers, I guess that SQLServer isn't aware that it is
receiving the same information that it has already received from the
previous query and just allocates some more memory for the "new" results.
My question is "is this normal behaviour or can I somehow give SQLServer
enough information for it to determine if it has already cached the data
from the linked server in order to stop it allocating more memory".
One way to determine whether this normal, is to play with some other
provider. SQLOLEDB to an other SQL Server, or maybe the Jet provider.
I don't think SQL Server can ever rely on cached data for linked servers,
as it will not be notified when data changes. Thus, there is not really
any reason why SQL Server's own memory will grow.
BTW I am fairly sure that this isn't a memory leak in the OLEDB driver
.DLL - after SQLServer unloads the OLEDB driver .DLL the memory
allocated to SQLServer in task manager does not go down (despite the
fact that the DLL no longer exists in any process).
Windows programming is not my best game, but if you unload a DLL, does
really all memory allocated by the DLL all of a sudden get deallocated?
I don't know how much work it is to make a test shot with the provider
out of process, but that would be a good way to remove all doubts.
--
Erland Sommarskog, SQL Server MVP, esquel@xxxxxxxxxxxxx
Books Online for SQL Server 2005 at
http://www.microsoft.com/technet/prodtechnol/sql/2005/downloads/books.mspx
Books Online for SQL Server 2000 at
http://www.microsoft.com/sql/prodinfo/previousversions/books.mspx
.
- References:
- Memory usage with linked servers
- From: Mark
- Memory usage with linked servers
- Prev by Date: Re: For XML
- Next by Date: Re: Problem with date field in UPDATE statement WHERE clause
- Previous by thread: Memory usage with linked servers
- Index(es):
Relevant Pages
|
|