zoukankan      html  css  js  c++  java
  • 运维脚本 内存管理统计(5)

    相关参考:http://www.mssqlmct.cn/dba/?post=356

    转自:https://blog.csdn.net/kk185800961

    1. --查看设置的最大最小每次  
    2. exec sp_configure 'max server memory (MB)'  
    3. exec sp_configure 'min server memory (MB)'  
    4. --SqlServer目标内存、当前内存 、数据库内存页数  
    5. SELECT object_name,counter_name,cntr_value,cntr_value/1024/1024 AS [cntr_value(GB)]  
    6. FROM sys.dm_os_performance_counters  
    7. WHERE counter_name in('Target Server Memory (KB)','Total Server Memory (KB)','Database pages')  
    8. --系统物理内存使用情况  
    9. SELECT * FROM sys.dm_os_sys_info  
    10. SELECT * FROM sys.dm_os_sys_memory  
    11. SELECT * FROM sys.dm_os_process_memory  
    12. --查看当前是否有等待内存授予的进程  
    13. Select a.*,b.text, c.query_plan   
    14. from sys.dm_exec_query_memory_grants a  
    15. CROSS APPLY sys.dm_exec_sql_text(sql_handle) b   
    16. CROSS APPLY sys.dm_exec_query_plan (plan_handle) c 
    17.  
    18. --SqlServer预留和提交内存情况  
    19. DBCC MEMORYSTATUS; --旧的方法  
    20. SELECT  [type]     
    21. ,SUM(virtual_memory_reserved_kb) AS [vm reserved]    
    22. ,SUM(virtual_memory_committed_kb) AS [vm commited]    
    23. ,SUM(awe_allocated_kb) AS [awe allocated]      
    24. ,SUM(shared_memory_reserved_kb) AS [sm reserved]    
    25. ,SUM(shared_memory_committed_kb) AS [sm committed]    
    26. ,SUM(single_pages_kb) AS [Stolen in Buffer Pool]    
    27. ,SUM(multi_pages_kb) AS [MemToLeave]    
    28. ,SUM(single_pages_kb) + SUM(multi_pages_kb) AS [Stolen]    
    29. ,SUM(virtual_memory_committed_kb) + SUM(multi_pages_kb) AS [Buffer Pool]    
    30. FROM sys.dm_os_memory_clerks   
    31. GROUP BY [type]    
    32. ORDER BY [type] desc  
    33. --当前各数据库buffer pool的分配情况  
    34. SELECT   
    35. CASE database_id   
    36. WHEN 32767 THEN 'ResourceDb'   
    37. ELSE db_name(database_id) END AS Database_name  
    38. ,count(*) AS cached_pages_count  
    39. ,count(*)*8/1024 AS cached_space_in_mb  
    40. ,sum(convert(bigint,free_space_in_bytes))/1024/1024 AS free_space_in_mb  
    41. FROM sys.dm_os_buffer_descriptors(nolock)  
    42. GROUP BY db_name(database_id) ,database_id  
    43. ORDER BY cached_pages_count DESC;  
    44. --当前数据库各表buffer pool的分配情况  
    45. SELECT top(20) name ,index_id ,count(*)AS cached_pages_count   
    46. ,count(*)*8/1024 AS cached_space_in_mb   
    47. FROM sys.dm_os_buffer_descriptors AS bd   
    48. INNER JOIN (  
    49. SELECT object_name(object_id) AS name ,index_id ,allocation_unit_id  
    50. FROM sys.allocation_units AS au INNER JOIN sys.partitions AS p   
    51. ON au.container_id = p.hobt_id  AND (au.type = 1 OR au.type = 3 )   
    52. UNION ALL  
    53. SELECT object_name(object_id) AS name,index_id, allocation_unit_id  
    54. FROM sys.allocation_units AS au INNER JOIN sys.partitions AS p   
    55. ON au.container_id = p.hobt_id  AND au.type = 2  
    56. AS obj ON bd.allocation_unit_id = obj.allocation_unit_id  
    57. WHERE database_id = db_id() AND obj.name NOT LIKE 'sys%'  
    58. GROUP BY name, index_id   
    59. ORDER BY cached_pages_count DESC  
    60. -- 当前各表或索引在缓冲池中的页数量及大小  
    61. SELECT obj.name ,obj.index_id,i.name ,count(*)AS cached_pages_count ,count(*)*8/1024 AS cached_space_in_mb  
    62. FROM sys.dm_os_buffer_descriptors AS bd   
    63. INNER JOIN (  
    64. SELECT object_name(object_id) AS name,object_id,index_id ,allocation_unit_id  
    65. FROM sys.allocation_units AS au  
    66. INNER JOIN sys.partitions AS p ON au.container_id = p.hobt_id AND (au.type = 1 OR au.type = 3)  
    67. UNION ALL  
    68. SELECT object_name(object_id) AS name,object_id,index_id, allocation_unit_id  
    69. FROM sys.allocation_units AS au  
    70. INNER JOIN sys.partitions AS p   ON au.container_id = p.partition_id AND au.type = 2  
    71. AS obj ON bd.allocation_unit_id = obj.allocation_unit_id  
    72. LEFT JOIN sys.indexes i(nolock) on obj.object_id = i.object_id AND obj.index_id = i.index_id    
    73. WHERE database_id = db_id() AND obj.name NOT LIKE 'sys%'  
    74. GROUP BY obj.name ,obj.index_id,i.name  
    75. ORDER BY cached_pages_count DESC;  
    76. -- 统计当前内存分配情况  
    77. select   
    78. physical_memory_in_bytes / 1024 / 1024 as physical_memory_mb,  
    79. virtual_memory_in_bytes / 1024 / 1024 as virtual_memory_mb,  
    80. bpool_committed * 8 / 1024 as bpool_committed_mb,  
    81. bpool_commit_target * 8 / 1024 as bpool_target_mb,  
    82. bpool_visible * 8 / 1024 as bpool_visible_mb  
    83. from sys.dm_os_sys_info  
    84. --当前内存脏页数量及大小  
    85. SELECT db_name(database_id) AS 'Database'  
    86. ,count(page_id) AS 'Dirty Pages'  
    87. ,count(page_id)*8/1024 AS 'Dirty Pages(MB)'  
    88. FROM sys.dm_os_buffer_descriptors(nolock)  
    89. WHERE is_modified =1  
    90. GROUP BY db_name(database_id)  
    91. ORDER BY 'Dirty Pages' DESC  
    92. --缓存类型数量大小  
    93. select cacheobjtype as [Cached Type]  
    94. ,COUNT(*) [Number of Plans]   
    95. ,SUM(CONVERT(BIGINT,size_in_bytes))/1024/1024 [Plan Cache Size(MB)]  
    96. from sys.dm_exec_cached_plans   
    97. group by cacheobjtype   
    98. order by [Plan Cache Size(MB)] desc  
    99. --缓存对象数量大小  
    100. select objtype as [Cached Object Type]  
    101. ,COUNT(*) as [Number of Plans]   
    102. ,SUM(CONVERT(BIGINT,size_in_bytes))/1024/1024 [Plan Cache Size(MB)]  
    103. ,avg(usecounts) [Avg Use Count]   
    104. from sys.dm_exec_cached_plans   
    105. group by objtype   
    106. order by [Plan Cache Size(MB)] desc  
    107. --内存对象  
    108. SELECT top 10 * FROM sys.dm_os_memory_cache_counters(nolock)  
    109. ORDER BY entries_count DESC;  
    110. SELECT * FROM sys.dm_os_memory_clerks a  
    111. WHERE name='TokenAndPermUserStore'  
    112. SELECT * FROM sys.dm_os_memory_cache_entries(nolock)  
    113. WHERE [type]='USERSTORE_TOKENPERM' and name='TokenAndPermUserStore'  
    114. --缓存分析对象  
    115. SELECT * FROM sys.syscacheobjects   
    116. SELECT * FROM sys.dm_exec_cached_plans  
    117. --即时查询优化(运行即生效)  
    118. EXEC sp_configure 'show advanced options',1  
    119. RECONFIGURE  
    120. EXEC sp_configure 'optimize for ad hoc workloads',1  
    121. RECONFIGURE  
  • 相关阅读:
    ASP.NET MVC + EF 利用存储过程读取大数据,1亿数据测试很OK
    ASP.NET MVC+EasyUI+Entity FrameWork 整合开发
    ASP.NET MVC局部验证及相关问题
    asp.net mvc常用的数据注解和验证以及entity framework数据映射
    Entity Framework 一次加载许多个 Fluent API 映射
    Entity Framework Code First 常用方法集成
    ASP.NET MVC 应用程序的安全性,看一眼你就会了
    Entity Framework SqlFunctions 教你如何在EF调用sqlserver方法的函数存根
    ASP.NET MVC 及 Areas 简单控制路由
    ASP.NET MVC 表单的几种提交方式
  • 原文地址:https://www.cnblogs.com/gered/p/9052236.html
Copyright © 2011-2022 走看看