相关参考: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. --SqlServer预留和提交内存情况
  18. DBCC MEMORYSTATUS; --旧的方法
  19. SELECT  [type]
  20. ,SUM(virtual_memory_reserved_kb) AS [vm reserved]
  21. ,SUM(virtual_memory_committed_kb) AS [vm commited]
  22. ,SUM(awe_allocated_kb) AS [awe allocated]
  23. ,SUM(shared_memory_reserved_kb) AS [sm reserved]
  24. ,SUM(shared_memory_committed_kb) AS [sm committed]
  25. ,SUM(single_pages_kb) AS [Stolen in Buffer Pool]
  26. ,SUM(multi_pages_kb) AS [MemToLeave]
  27. ,SUM(single_pages_kb) + SUM(multi_pages_kb) AS [Stolen]
  28. ,SUM(virtual_memory_committed_kb) + SUM(multi_pages_kb) AS [Buffer Pool]
  29. FROM sys.dm_os_memory_clerks
  30. GROUP BY [type]
  31. ORDER BY [type] desc
  32. --当前各数据库buffer pool的分配情况
  33. SELECT
  34. CASE database_id
  35. WHEN 32767 THEN 'ResourceDb'
  36. ELSE db_name(database_id) END AS Database_name
  37. ,count(*) AS cached_pages_count
  38. ,count(*)*8/1024 AS cached_space_in_mb
  39. ,sum(convert(bigint,free_space_in_bytes))/1024/1024 AS free_space_in_mb
  40. FROM sys.dm_os_buffer_descriptors(nolock)
  41. GROUP BY db_name(database_id) ,database_id
  42. ORDER BY cached_pages_count DESC;
  43. --当前数据库各表buffer pool的分配情况
  44. SELECT top(20) name ,index_id ,count(*)AS cached_pages_count
  45. ,count(*)*8/1024 AS cached_space_in_mb
  46. FROM sys.dm_os_buffer_descriptors AS bd
  47. INNER JOIN (
  48. SELECT object_name(object_id) AS name ,index_id ,allocation_unit_id
  49. FROM sys.allocation_units AS au INNER JOIN sys.partitions AS p
  50. ON au.container_id = p.hobt_id  AND (au.type = 1 OR au.type = 3 )
  51. UNION ALL
  52. SELECT object_name(object_id) AS name,index_id, allocation_unit_id
  53. FROM sys.allocation_units AS au INNER JOIN sys.partitions AS p
  54. ON au.container_id = p.hobt_id  AND au.type = 2
  55. ) AS obj ON bd.allocation_unit_id = obj.allocation_unit_id
  56. WHERE database_id = db_id() AND obj.name NOT LIKE 'sys%'
  57. GROUP BY name, index_id
  58. ORDER BY cached_pages_count DESC
  59. -- 当前各表或索引在缓冲池中的页数量及大小
  60. SELECT obj.name ,obj.index_id,i.name ,count(*)AS cached_pages_count ,count(*)*8/1024 AS cached_space_in_mb
  61. FROM sys.dm_os_buffer_descriptors AS bd
  62. INNER JOIN (
  63. SELECT object_name(object_id) AS name,object_id,index_id ,allocation_unit_id
  64. FROM sys.allocation_units AS au
  65. INNER JOIN sys.partitions AS p ON au.container_id = p.hobt_id AND (au.type = 1 OR au.type = 3)
  66. UNION ALL
  67. SELECT object_name(object_id) AS name,object_id,index_id, allocation_unit_id
  68. FROM sys.allocation_units AS au
  69. INNER JOIN sys.partitions AS p   ON au.container_id = p.partition_id AND au.type = 2
  70. ) AS obj ON bd.allocation_unit_id = obj.allocation_unit_id
  71. LEFT JOIN sys.indexes i(nolock) on obj.object_id = i.object_id AND obj.index_id = i.index_id
  72. WHERE database_id = db_id() AND obj.name NOT LIKE 'sys%'
  73. GROUP BY obj.name ,obj.index_id,i.name
  74. ORDER BY cached_pages_count DESC;
  75. -- 统计当前内存分配情况
  76. select
  77. physical_memory_in_bytes / 1024 / 1024 as physical_memory_mb,
  78. virtual_memory_in_bytes / 1024 / 1024 as virtual_memory_mb,
  79. bpool_committed * 8 / 1024 as bpool_committed_mb,
  80. bpool_commit_target * 8 / 1024 as bpool_target_mb,
  81. bpool_visible * 8 / 1024 as bpool_visible_mb
  82. from sys.dm_os_sys_info
  83. --当前内存脏页数量及大小
  84. SELECT db_name(database_id) AS 'Database'
  85. ,count(page_id) AS 'Dirty Pages'
  86. ,count(page_id)*8/1024 AS 'Dirty Pages(MB)'
  87. FROM sys.dm_os_buffer_descriptors(nolock)
  88. WHERE is_modified =1
  89. GROUP BY db_name(database_id)
  90. ORDER BY 'Dirty Pages' DESC
  91. --缓存类型数量大小
  92. select cacheobjtype as [Cached Type]
  93. ,COUNT(*) [Number of Plans]
  94. ,SUM(CONVERT(BIGINT,size_in_bytes))/1024/1024 [Plan Cache Size(MB)]
  95. from sys.dm_exec_cached_plans
  96. group by cacheobjtype
  97. order by [Plan Cache Size(MB)] desc
  98. --缓存对象数量大小
  99. select objtype as [Cached Object Type]
  100. ,COUNT(*) as [Number of Plans]
  101. ,SUM(CONVERT(BIGINT,size_in_bytes))/1024/1024 [Plan Cache Size(MB)]
  102. ,avg(usecounts) [Avg Use Count]
  103. from sys.dm_exec_cached_plans
  104. group by objtype
  105. order by [Plan Cache Size(MB)] desc
  106. --内存对象
  107. SELECT top 10 * FROM sys.dm_os_memory_cache_counters(nolock)
  108. ORDER BY entries_count DESC;
  109. SELECT * FROM sys.dm_os_memory_clerks a
  110. WHERE name='TokenAndPermUserStore'
  111. SELECT * FROM sys.dm_os_memory_cache_entries(nolock)
  112. WHERE [type]='USERSTORE_TOKENPERM' and name='TokenAndPermUserStore'
  113. --缓存分析对象
  114. SELECT * FROM sys.syscacheobjects
  115. SELECT * FROM sys.dm_exec_cached_plans
  116. --即时查询优化(运行即生效)
  117. EXEC sp_configure 'show advanced options',1
  118. RECONFIGURE
  119. EXEC sp_configure 'optimize for ad hoc workloads',1
  120. RECONFIGURE

转载于:https://www.cnblogs.com/gered/p/9052236.html

运维脚本 内存管理统计(5)相关推荐

  1. 整理全网Shell脚本合集,Java脚本,运维脚本,告警脚本,监控脚本,日志脚本,docker脚本等---------持续更新!

    整理全网Shell脚本合集,Java脚本,运维脚本,告警脚本,监控脚本,日志脚本,docker脚本等---------持续更新! 一.ffmpeg脚本 1.1 打开进程,并判断进程数量 1.2 关闭进 ...

  2. python怎么写运维脚本_python运维脚本实例

    file是一个类,使用file('file_name', 'r+')这种方式打开文件,返回一个file对象,以写模式打开文件不存在则会被创建.但是更推荐使用内置函数open()来打开一个文件 . 首先 ...

  3. oracle税务运维脚本练习,荣欣Linux运维+Oracle DBA初级+高级全套实战训练

    第一阶段:企业版Linux系统运维基础.项目实战:112课时xa0 第二阶段:基于互联网门户Linux应用集群与Mysql数据库集群架构设计与维护,项目实战:112课时 第三阶段:Oracle DBA ...

  4. bind blz mysql_MySQ DBAL重点剖析课程 企业级MySQL系统安全与DBA运维日常事务管理 运维DBA必备宝典...

    MySQ DBAL重点剖析课程 企业级MySQL系统安全与DBA运维日常事务管理 运维DBA必备宝典 本资源由JAD资源网收集整理丨www.jiuandun.com 资源简介 MySQ DBAL重点剖 ...

  5. 云计算示范项目_瑞松科技基于工业互联网的设备运维及工艺管理云平台成功入选2020年工业互联网试点示范项目...

    2020年12月28日,工业和信息化部发布2020年工业互联网试点示范项目名单公示,瑞松科技申报项目<基于工业互联网的设备运维及工艺管理云平台>成功入选试点示范项目平台集成创新应用方向,再 ...

  6. python自动化办公 51cto_利用python实现批量自动化运维脚本案例

    本文为通过密码或密钥实现python批量自动化运维脚本案例分享,是老男孩linux培训 python课程教学案例内容,后续会分享多线程并发执行这个脚本的更高级的功能(http://oldboy.blo ...

  7. 简单python脚本实例-五个python常用运维脚本面试题实例

    原标题:五个python常用运维脚本面试题实例 一.用Python写一个列举当前目录以及所有子目录下的文件,并打印出绝对路径 #!/usr/bin/envpython import os for ro ...

  8. 让你一步步成为运维专家之各种运维脚本

    让你一步步成为运维专家之各种运维脚本 最近想做一个自动化运维的脚本,就整理一些资料,分享出来,一起共勉! 运维脚本参考:https://github.com/SwordfallYeung/BigDat ...

  9. 经典的运维脚本三步曲

    无论是应用运维,还是数据库运维,均可以分为"人肉"-"自动化"-"智能化"阶段,其中自动化阶段,主要是将一些人做的操作,尤其是一些重复性操作 ...

最新文章

  1. TextView 添加Onclick 无效
  2. qt数据库有效插件为空的情况
  3. ReactJS入门之前端开发的演变
  4. Java Spring Security示例教程中的2种设置LDAP Active Directory身份验证的方法
  5. 【clickhouse】BAT 都在追捧的 ClickHouse ,到底有多快 笔记
  6. springcloud服务熔断和服务降级的自我理解
  7. linux 权限rwx(4,2,1)详细说明
  8. 课设——C语言学生成绩管理系统
  9. Java自动生成word文档,用心看这篇就够了【重点】
  10. Python爬虫:爬取酷狗音乐!动不动就给我来个付费音乐!没用的!
  11. 程序员必备开发神器【MAC篇】
  12. Intro.js 分步向导插件使用方法
  13. 【5G手机漏接电话问题解决方式】
  14. 【AI视野·今日CV 计算机视觉论文速览 第154期】Wed, 4 Sep 2019
  15. c语言oct hex dec用法,C++ 如何用cout输出hex,oct,dec的解决方法
  16. Java设计模式--------观察者模式
  17. 拼图游戏怎样切换代码html,HTML5技术之图像处理:一个滑动的拼图游戏-H5教程
  18. 华为鸿蒙os家电,搭载华为鸿蒙OS的美的产品上市
  19. 为什么都说Dubbo不适合传输大文件?Dubbo支持的协议
  20. 手动修复本地DNS教程

热门文章

  1. Hello New World 写在 Conflux 网络 Tethys 上线之际
  2. java 调用 su,java调用外部应用程序
  3. 输入一行字符,分别统计出其中的英文字母大写小写、空格、数字和其它字符的个数。
  4. linux 内存溢出排查_linux下valgrind内存问题排查
  5. GETZ PIZZA – Home Delivery Management
  6. 从零破解一款轻量级滑动验证码
  7. 永恒之蓝漏洞复现测试
  8. telnet如何开启?
  9. 线性代数之——四个基本子空间
  10. 『力扣刷题』5275_找出井字棋的获胜者 解题代码