zoukankan      html  css  js  c++  java
  • SQL Server 内存使用情况

     查看设置的最大与最小内存:

    1 exec sp_configure 'max server memory (MB)'  
    2 exec sp_configure 'min server memory (MB)'  
    View Code

     SqlServer目标内存、当前内存 、数据库内存页数:

    1 SELECT object_name,counter_name,cntr_value,cntr_value/1024/1024 AS [cntr_value(GB)]  
    2 FROM sys.dm_os_performance_counters  
    3 WHERE counter_name in('Target Server Memory (KB)','Total Server Memory (KB)','Database pages')  
    View Code

    •  查看设置的最大与最小内存:

    1 SELECT * FROM sys.dm_os_sys_info  
    2 SELECT * FROM sys.dm_os_sys_memory  
    3 SELECT * FROM sys.dm_os_process_memory 
    View Code

    •  查看当前是否有等待内存授予的进程

    1 Select a.*,b.text, c.query_plan   
    2 from sys.dm_exec_query_memory_grants a  
    3 CROSS APPLY sys.dm_exec_sql_text(sql_handle) b   
    4 CROSS APPLY sys.dm_exec_query_plan (plan_handle) c 
    View Code

    •  SqlServer预留和提交内存情况:

    SELECT  [type]     
    ,SUM(virtual_memory_reserved_kb) AS [vm reserved]    
    ,SUM(virtual_memory_committed_kb) AS [vm commited]    
    ,SUM(awe_allocated_kb) AS [awe allocated]      
    ,SUM(shared_memory_reserved_kb) AS [sm reserved]    
    ,SUM(shared_memory_committed_kb) AS [sm committed]    
    ,SUM(single_pages_kb) AS [Stolen in Buffer Pool]    
    ,SUM(multi_pages_kb) AS [MemToLeave]    
    ,SUM(single_pages_kb) + SUM(multi_pages_kb) AS [Stolen]    
    ,SUM(virtual_memory_committed_kb) + SUM(multi_pages_kb) AS [Buffer Pool]    
    FROM sys.dm_os_memory_clerks   
    GROUP BY [type]    
    ORDER BY [type] desc  
    View Code

      当前各数据库buffer pool的分配情况:

    SELECT   
    CASE database_id   
        WHEN 32767 THEN 'ResourceDb'   
        ELSE db_name(database_id) END AS Database_name  
    ,count(*) AS cached_pages_count  
    ,count(*)*8/1024 AS cached_space_in_mb  
    ,sum(convert(bigint,free_space_in_bytes))/1024/1024 AS free_space_in_mb  
    FROM sys.dm_os_buffer_descriptors(nolock)  
    GROUP BY db_name(database_id) ,database_id  
    ORDER BY cached_pages_count DESC;  
    View Code

    •  当前数据库各表buffer pool的分配情况:

    SELECT top(20) name ,index_id ,count(*)AS cached_pages_count   
    ,count(*)*8/1024 AS cached_space_in_mb   
    FROM sys.dm_os_buffer_descriptors AS bd   
    INNER JOIN (  
        SELECT object_name(object_id) AS name ,index_id ,allocation_unit_id  
        FROM sys.allocation_units AS au INNER JOIN sys.partitions AS p   
        ON au.container_id = p.hobt_id  AND (au.type = 1 OR au.type = 3 )   
        UNION ALL  
        SELECT object_name(object_id) AS name,index_id, allocation_unit_id  
        FROM sys.allocation_units AS au INNER JOIN sys.partitions AS p   
        ON au.container_id = p.hobt_id  AND au.type = 2  
    ) AS obj ON bd.allocation_unit_id = obj.allocation_unit_id  
    WHERE database_id = db_id() AND obj.name NOT LIKE 'sys%'  
    GROUP BY name, index_id   
    ORDER BY cached_pages_count DESC  
    View Code

    •  当前各表或索引在缓冲池中的页数量及大小:

    SELECT obj.name ,obj.index_id,i.name ,count(*)AS cached_pages_count ,count(*)*8/1024 AS cached_space_in_mb  
    FROM sys.dm_os_buffer_descriptors AS bd   
    INNER JOIN (  
        SELECT object_name(object_id) AS name,object_id,index_id ,allocation_unit_id  
        FROM sys.allocation_units AS au  
        INNER JOIN sys.partitions AS p ON au.container_id = p.hobt_id AND (au.type = 1 OR au.type = 3)  
        UNION ALL  
        SELECT object_name(object_id) AS name,object_id,index_id, allocation_unit_id  
        FROM sys.allocation_units AS au  
        INNER JOIN sys.partitions AS p   ON au.container_id = p.partition_id AND au.type = 2  
    ) AS obj ON bd.allocation_unit_id = obj.allocation_unit_id  
    LEFT JOIN sys.indexes i(nolock) on obj.object_id = i.object_id AND obj.index_id = i.index_id    
    WHERE database_id = db_id() AND obj.name NOT LIKE 'sys%'  
    GROUP BY obj.name ,obj.index_id,i.name  
    ORDER BY cached_pages_count DESC;  
    View Code

    •  统计当前内存分配情况 

    select   
    physical_memory_in_bytes / 1024 / 1024 as physical_memory_mb,  
    virtual_memory_in_bytes / 1024 / 1024 as virtual_memory_mb,  
    bpool_committed * 8 / 1024 as bpool_committed_mb,  
    bpool_commit_target * 8 / 1024 as bpool_target_mb,  
    bpool_visible * 8 / 1024 as bpool_visible_mb  
    from sys.dm_os_sys_info  
    View Code

    •  当前内存脏页数量及大小 :

    SELECT db_name(database_id) AS 'Database'  
    ,count(page_id) AS 'Dirty Pages'  
    ,count(page_id)*8/1024 AS 'Dirty Pages(MB)'  
    FROM sys.dm_os_buffer_descriptors(nolock)  
    WHERE is_modified =1  
    GROUP BY db_name(database_id)  
    ORDER BY 'Dirty Pages' DESC 
    View Code

    •  缓存类型数量大小 :

    select cacheobjtype as [Cached Type]  
    ,COUNT(*) [Number of Plans]   
    ,SUM(CONVERT(BIGINT,size_in_bytes))/1024/1024 [Plan Cache Size(MB)]  
    from sys.dm_exec_cached_plans   
    group by cacheobjtype   
    order by [Plan Cache Size(MB)] desc  
    View Code

    •  缓存对象数量大小   :

    select objtype as [Cached Object Type]  
    ,COUNT(*) as [Number of Plans]   
    ,SUM(CONVERT(BIGINT,size_in_bytes))/1024/1024 [Plan Cache Size(MB)]  
    ,avg(usecounts) [Avg Use Count]   
    from sys.dm_exec_cached_plans   
    group by objtype   
    order by [Plan Cache Size(MB)] desc  
    View Code

      内存对象   :

    SELECT top 10 * FROM sys.dm_os_memory_cache_counters(nolock)  
    ORDER BY entries_count DESC;  
      
    SELECT * FROM sys.dm_os_memory_clerks a  
    WHERE name='TokenAndPermUserStore'  
      
    SELECT * FROM sys.dm_os_memory_cache_entries(nolock)  
    WHERE [type]='USERSTORE_TOKENPERM' and name='TokenAndPermUserStore'
    View Code

    •  缓存分析对象   :

    SELECT * FROM sys.syscacheobjects   
    SELECT * FROM sys.dm_exec_cached_plans  
    View Code

      即时查询优化(运行即生效)    :

    EXEC sp_configure 'show advanced options',1  
    RECONFIGURE  
    EXEC sp_configure 'optimize for ad hoc workloads',1  
    RECONFIGURE  
    View Code

    all code : 

    --查看设置的最大最小每次  
    exec sp_configure 'max server memory (MB)'  
    exec sp_configure 'min server memory (MB)'  
      
      
    --SqlServer目标内存、当前内存 、数据库内存页数  
    SELECT object_name,counter_name,cntr_value,cntr_value/1024/1024 AS [cntr_value(GB)]  
    FROM sys.dm_os_performance_counters  
    WHERE counter_name in('Target Server Memory (KB)','Total Server Memory (KB)','Database pages')  
      
      
    --系统物理内存使用情况  
    SELECT * FROM sys.dm_os_sys_info  
    SELECT * FROM sys.dm_os_sys_memory  
    SELECT * FROM sys.dm_os_process_memory  
      
    --查看当前是否有等待内存授予的进程  
    Select a.*,b.text, c.query_plan   
    from sys.dm_exec_query_memory_grants a  
    CROSS APPLY sys.dm_exec_sql_text(sql_handle) b   
    CROSS APPLY sys.dm_exec_query_plan (plan_handle) c  
      
      
    --SqlServer预留和提交内存情况  
    DBCC MEMORYSTATUS; --旧的方法  
      
    SELECT  [type]     
    ,SUM(virtual_memory_reserved_kb) AS [vm reserved]    
    ,SUM(virtual_memory_committed_kb) AS [vm commited]    
    ,SUM(awe_allocated_kb) AS [awe allocated]      
    ,SUM(shared_memory_reserved_kb) AS [sm reserved]    
    ,SUM(shared_memory_committed_kb) AS [sm committed]    
    ,SUM(single_pages_kb) AS [Stolen in Buffer Pool]    
    ,SUM(multi_pages_kb) AS [MemToLeave]    
    ,SUM(single_pages_kb) + SUM(multi_pages_kb) AS [Stolen]    
    ,SUM(virtual_memory_committed_kb) + SUM(multi_pages_kb) AS [Buffer Pool]    
    FROM sys.dm_os_memory_clerks   
    GROUP BY [type]    
    ORDER BY [type] desc  
      
      
    --当前各数据库buffer pool的分配情况  
    SELECT   
    CASE database_id   
        WHEN 32767 THEN 'ResourceDb'   
        ELSE db_name(database_id) END AS Database_name  
    ,count(*) AS cached_pages_count  
    ,count(*)*8/1024 AS cached_space_in_mb  
    ,sum(convert(bigint,free_space_in_bytes))/1024/1024 AS free_space_in_mb  
    FROM sys.dm_os_buffer_descriptors(nolock)  
    GROUP BY db_name(database_id) ,database_id  
    ORDER BY cached_pages_count DESC;  
      
      
    --当前数据库各表buffer pool的分配情况  
    SELECT top(20) name ,index_id ,count(*)AS cached_pages_count   
    ,count(*)*8/1024 AS cached_space_in_mb   
    FROM sys.dm_os_buffer_descriptors AS bd   
    INNER JOIN (  
        SELECT object_name(object_id) AS name ,index_id ,allocation_unit_id  
        FROM sys.allocation_units AS au INNER JOIN sys.partitions AS p   
        ON au.container_id = p.hobt_id  AND (au.type = 1 OR au.type = 3 )   
        UNION ALL  
        SELECT object_name(object_id) AS name,index_id, allocation_unit_id  
        FROM sys.allocation_units AS au INNER JOIN sys.partitions AS p   
        ON au.container_id = p.hobt_id  AND au.type = 2  
    ) AS obj ON bd.allocation_unit_id = obj.allocation_unit_id  
    WHERE database_id = db_id() AND obj.name NOT LIKE 'sys%'  
    GROUP BY name, index_id   
    ORDER BY cached_pages_count DESC  
      
      
    -- 当前各表或索引在缓冲池中的页数量及大小  
    SELECT obj.name ,obj.index_id,i.name ,count(*)AS cached_pages_count ,count(*)*8/1024 AS cached_space_in_mb  
    FROM sys.dm_os_buffer_descriptors AS bd   
    INNER JOIN (  
        SELECT object_name(object_id) AS name,object_id,index_id ,allocation_unit_id  
        FROM sys.allocation_units AS au  
        INNER JOIN sys.partitions AS p ON au.container_id = p.hobt_id AND (au.type = 1 OR au.type = 3)  
        UNION ALL  
        SELECT object_name(object_id) AS name,object_id,index_id, allocation_unit_id  
        FROM sys.allocation_units AS au  
        INNER JOIN sys.partitions AS p   ON au.container_id = p.partition_id AND au.type = 2  
    ) AS obj ON bd.allocation_unit_id = obj.allocation_unit_id  
    LEFT JOIN sys.indexes i(nolock) on obj.object_id = i.object_id AND obj.index_id = i.index_id    
    WHERE database_id = db_id() AND obj.name NOT LIKE 'sys%'  
    GROUP BY obj.name ,obj.index_id,i.name  
    ORDER BY cached_pages_count DESC;  
      
    -- 统计当前内存分配情况  
    select   
    physical_memory_in_bytes / 1024 / 1024 as physical_memory_mb,  
    virtual_memory_in_bytes / 1024 / 1024 as virtual_memory_mb,  
    bpool_committed * 8 / 1024 as bpool_committed_mb,  
    bpool_commit_target * 8 / 1024 as bpool_target_mb,  
    bpool_visible * 8 / 1024 as bpool_visible_mb  
    from sys.dm_os_sys_info  
      
      
    --当前内存脏页数量及大小  
    SELECT db_name(database_id) AS 'Database'  
    ,count(page_id) AS 'Dirty Pages'  
    ,count(page_id)*8/1024 AS 'Dirty Pages(MB)'  
    FROM sys.dm_os_buffer_descriptors(nolock)  
    WHERE is_modified =1  
    GROUP BY db_name(database_id)  
    ORDER BY 'Dirty Pages' DESC  
      
      
    --缓存类型数量大小  
    select cacheobjtype as [Cached Type]  
    ,COUNT(*) [Number of Plans]   
    ,SUM(CONVERT(BIGINT,size_in_bytes))/1024/1024 [Plan Cache Size(MB)]  
    from sys.dm_exec_cached_plans   
    group by cacheobjtype   
    order by [Plan Cache Size(MB)] desc  
      
      
    --缓存对象数量大小  
    select objtype as [Cached Object Type]  
    ,COUNT(*) as [Number of Plans]   
    ,SUM(CONVERT(BIGINT,size_in_bytes))/1024/1024 [Plan Cache Size(MB)]  
    ,avg(usecounts) [Avg Use Count]   
    from sys.dm_exec_cached_plans   
    group by objtype   
    order by [Plan Cache Size(MB)] desc  
      
    --内存对象  
    SELECT top 10 * FROM sys.dm_os_memory_cache_counters(nolock)  
    ORDER BY entries_count DESC;  
      
    SELECT * FROM sys.dm_os_memory_clerks a  
    WHERE name='TokenAndPermUserStore'  
      
    SELECT * FROM sys.dm_os_memory_cache_entries(nolock)  
    WHERE [type]='USERSTORE_TOKENPERM' and name='TokenAndPermUserStore'  
      
      
    --缓存分析对象  
    SELECT * FROM sys.syscacheobjects   
    SELECT * FROM sys.dm_exec_cached_plans  
      
      
    --即时查询优化(运行即生效)  
    EXEC sp_configure 'show advanced options',1  
    RECONFIGURE  
    EXEC sp_configure 'optimize for ad hoc workloads',1  
    RECONFIGURE  
    View Code
  • 相关阅读:
    VS中使用svn注意事项
    后端调用WebApi
    抽象工厂模式
    观察者模式
    建造者模式
    外观模式
    模板方法
    原型模式
    工厂方法
    代理模式
  • 原文地址:https://www.cnblogs.com/turingchang/p/8297809.html
Copyright © 2011-2022 走看看