WITH db_mem AS (
SELECT
DB_NAME(database_id) AS 数据库名,
COUNT(*) * 8 / 1024.0 AS 内存占用_MB
FROM sys.dm_os_buffer_descriptors
WHERE database_id <> 32767
GROUP BY database_id
)
SELECT
数据库名,
内存占用_MB,
ROUND(内存占用_MB / SUM(内存占用_MB) OVER() * 100, 2) AS 内存占比_百分比
FROM db_mem
ORDER BY 内存占用_MB DESC;