Which SQL Server database taking all memory ?

Опубликовано: 19 Октябрь 2024
на канале: Vikash DBA (RDMS tutorial)-SQL GUIDE
408
12

Determine SQL Server memory use by database and object
How to List Dirty Pages From Memory in SQL Server?
How to View the Dirty Pages In Memory of a Database?

FOR PAID SQL TRAINING AND SUPPORT Pleases contact - [email protected]

Script:

--list all the dirty pages from the memory
SELECT db_name(database_id) AS 'Database',
page_id AS 'Dirty Pages',
FILE_ID,
page_type,
page_level
FROM sys.dm_os_buffer_descriptors
WHERE is_modified =1

---SQL Server which database takes all memory
--Determine SQL Server memory use by database and object
DECLARE @buffer INT;
SELECT @buffer = cntr_value
FROM sys.dm_os_performance_counters
WHERE RTRIM([object_name]) LIKE '%Buffer Manager'
AND counter_name = 'Total Pages';

;WITH buffer_descriptors AS
(
SELECT
database_id, db_buffer_pages = COUNT(*)
FROM sys.dm_os_buffer_descriptors
GROUP BY database_id
)
SELECT
DB_NAME([database_id]) as DB_Name ,
db_buffer_pages,
db_buffer_pages / 128 as db_buffer_MB
FROM buffer_descriptors
ORDER BY db_buffer_MB DESC;