If you have multiple instances of SQL Server running on the same windows server system,
a) Does buffer pool is shared amount multiple instances?
b) What is the effect of running DBCC DROPCLEANBUFFER OR DBCC FREEPROCCACHE? Would that only affect the SQL Server instance you ran the command on or all the instance(s) on the windows box would flush SQL server cache?
2 Answers 2
The buffer pool in SQL Server isn't shared across intances.
DBCC DROPCLEANBUFFER removes all "clean" pages from the buffer pool, "clean" pages are pages which haven't been modified since being read into the buffer pool.
DBCC FREEPROCCACHE removes all cached execution plans from the plan cache.
-
OK your answer make sense. Max Server Memory setting controls buffer pool memory allocated to that SQL instance.SQL Learner– SQL Learner2012年01月11日 16:16:23 +00:00Commented Jan 11, 2012 at 16:16
-
That correct Max Server Memory in SQL Server 2008 R2 and lower controls the Single Page Allocations, Multiple Page Allocations aren't controled by the Max Server Memory see for more details sqlservercentral.com/articles/Memory/74867MartinC– MartinC2012年01月11日 18:37:11 +00:00Commented Jan 11, 2012 at 18:37
Just complementing MartinC's answer:
Instances yes, but regarding databases
you can definitely use the following command to affect only your specific database:
DBCC FREESYSTEMCACHE ('userdatabase') -- cleans cache for specific user database
I know this is not your question, but it is something I found it might be useful to add.