SQL Server память - SQL запросы для понимания что занимает память

Ниже несколько запросов SQL, которые покажут какая база кушает память, что именно в БД занимает оперативную память. 

--1. Какие объекты в рамках БД кушают память (находятся в буфере кеша)
SELECT 
    DB_NAME(database_id) AS DatabaseName,
    OBJECT_NAME(p.object_id) AS ObjectName,
    p.index_id,
    i.name AS IndexName,
    COUNT(*) * 8 / 1024 AS MemoryUsedMB
FROM sys.dm_os_buffer_descriptors bd
JOIN sys.allocation_units au ON bd.allocation_unit_id = au.allocation_unit_id
JOIN sys.partitions p ON au.container_id = p.hobt_id
JOIN sys.indexes i ON p.object_id = i.object_id AND p.index_id = i.index_id
WHERE database_id = DB_ID()
GROUP BY database_id, p.object_id, p.index_id, i.name
ORDER BY MemoryUsedMB DESC;

--2. Распределение памяти по базам данных
-- Если нужно понять, какая база данных «съела» больше всего RAM:

SELECT 
    CASE database_id WHEN 32767 THEN 'Resource DB' ELSE DB_NAME(database_id) END AS DatabaseName,
    COUNT_BIG(*) [Pages in Buffer],
    COUNT_BIG(*) * 8 / 1024 [Buffer Size (MB)]
FROM sys.dm_os_buffer_descriptors
GROUP BY database_id
ORDER BY [Pages in Buffer] DESC;

--3. занятая память планами запросов 

SELECT TOP 20
    st.text AS [Query Text],
    cp.objtype AS [Object Type],
    cp.cacheobjtype AS [Cache Object Type],
    cp.size_in_bytes / 1024 AS [Size (KB)],
    cp.usecounts AS [Execution Count],
    qp.query_plan AS [Query Plan XML]
FROM sys.dm_exec_cached_plans AS cp
CROSS APPLY sys.dm_exec_sql_text(cp.plan_handle) AS st
CROSS APPLY sys.dm_exec_query_plan(cp.plan_handle) AS qp
ORDER BY cp.size_in_bytes DESC;


--4.  суммарный объем памяти, занятый всеми планами, используйте:

SELECT SUM(CAST(size_in_bytes AS BIGINT)) / 1024 / 1024 AS [Total Cache Size (MB)]
FROM sys.dm_exec_cached_plans;

Чтобы обновить статистику (очистить буферы кеша), необходимо на сервере сделать (нужны спец права):

CHECKPOINT;  -- сбрасывает данные на диск из памяти
DBCC DROPCLEANBUFFERS; -- чистит буферы кеша
DBCC FREEPROCCACHE; -- чистит планы запросов

 

Страница-источник на сайте falconspace.ru