Hello - I need to take each database off of a physical instance and give memory, cpu specs of what each database needs to run on the VM.If I have 10 databases on one instance (SQL Server 2005 Standard) and need the memory used by one database, if I run the following query...DECLARE @total_buffer INT;SELECT @total_buffer = cntr_value FROM sys.dm_os_performance_counters WHERE RTRIM([object_name]) LIKE '%Buffer Manager' AND counter_name = 'Total Pages';;WITH src AS( SELECT database_id, db_buffer_pages = COUNT_BIG(*) FROM sys.dm_os_buffer_descriptors --WHERE database_id BETWEEN 5 AND 32766 GROUP BY database_id)SELECT [db_name] = CASE [database_id] WHEN 32767 THEN 'Resource DB' ELSE DB_NAME([database_id]) END, db_buffer_pages, db_buffer_MB = db_buffer_pages / 128, db_buffer_percent = CONVERT(DECIMAL(6,3), db_buffer_pages * 100.0 / @total_buffer)FROM srcORDER BY db_buffer_MB DESC; (found here http://www.mssqltips.com/sqlservertip/2393/determine-sql-server-memory-use-by-database-and-object/)Is db_buffer_percent the percentage of the max server memory set for the instance?(db_buffer_percent of DB) * (Max server memory) = Amount of memory needed for DBIs this accurate or at least accurate enough?ThanksDave
↧