MSSQL 缓存相关情况获取


下文将讲述,查看mssql sql server 缓存的几种方式



方式一 查看DB 服务器下,各数据库缓存大小,如下脚本所示

  SELECT  COUNT(*) * 8 / 1024 AS '[缓存大小(M)]' ,
        CASE database_id
          WHEN 32767 THEN 'ResourceDb'
          ELSE DB_NAME(database_id)
        END AS '数据库名'
FROM    sys.dm_os_buffer_descriptors
GROUP BY DB_NAME(database_id) ,
        database_id
ORDER BY '[缓存大小(M)]' DESC



方式 查看DB 服务器下,脏页数据大小,如下脚本所示

 
SELECT  DB_NAME(database_id) AS '[数据库名称]' ,
        COUNT(page_id) AS '[脏页大小(kb)]'
FROM    sys.dm_os_buffer_descriptors
WHERE   is_modified = 1
GROUP BY DB_NAME(database_id)
ORDER BY COUNT(page_id) DESC



方式 查看DB 服务器下,虚拟内存保存大小,如下脚本所示

SELECT  [type] ,
        memory_node_id ,
        virtual_memory_reserved_kb ,
        virtual_memory_committed_kb ,
        awe_allocated_kb
FROM    sys.dm_os_memory_clerks
ORDER BY virtual_memory_reserved_kb DESC;


方式 查看DB 服务器下,缓存执行计划个数及大小,如下脚本所示

SELECT  COUNT(*) AS '[缓存执行计划数]' ,
        SUM(CAST(size_in_bytes AS BIGINT)) / 1024 / 1024 AS '[缓存执行计划大小(MB)]'
FROM    sys.dm_exec_cached_plans