Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have a server that maintains some ID information. Every 15 minutes, an external application runs to remove any old IDs, insert new ones and updated all existing. When this process runs, my SQL instance's page faults sky-rocket, memory sky-rockets, but the process is done in just a couple of minutes. However, SQL server seems to maintain the data used during the processing in memory for at least an hour or more afterward, causing other applications to act up. I've set memory usage to dynamic in SQL (256MB min, 384MB max), but its virtual size is still in the 600MB range.

share|improve this question
up vote 1 down vote accepted

There's no way to tell SQL Server to release memory, but if that memory really is not used anymore, it will be released as soon as any other application requests it to the O.S.; so applications shouldn't "act up" if that memory in SQL Server is actually ready to be freed, because SQL Server would then be more than happy to release it as soon as it's needed.

Anyway, there isn't anything you can do about this; your only option to instantly release memory is restarting the SQL Server service. If you really think this is needed, do a service restart as soon as your application is done updating the database.

share|improve this answer
OK, so that memory is not "permanently reserved" by SQL. Do you have any documentation anywhere that says SQL will release the memory if another application requests it? – scottm Sep 21 '09 at 19:40

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.