The server will take as much memory as you allow it to.
I suggest you take a look at the max memory settings for each instance and set it to something sensible.
E.G. You have a server with 16GB, both instances are to be used about the same and have the same size databases, I suggest you leave 4GB for the O/S and split the remaining 12GB between the two instances.
SQL Server will then allocate up to this amount of RAM to each instance (not instantly, it can take some time to get there).
Do not be put off by the fact that Task Manager displays a different (very low) RAM usage. This can be rather misleading. Also, if you are comparing the performance of a SQL Server that has a nice warm cache of a couple of days, compared to a newly restarted instance there can be some large differences in performance. You I/O subsystem may not be up to much and therefore show a dog-slow system while the cache is quite empty.
If possible, find the queries that are running slow and take a look at them running against an empty cache or a fully warmed cache. You can see huge differences here - and I really mean huge.
Take a look at [this][1] to see how to find out the real memory usage of your SQL Server instance.
[1]: http://ask.sqlservercentral.com/questions/5258/how-to-get-exact-dynamic-memory-usage-of-sql-server-2005
↧