运维脚本 内存管理统计(5)
相关参考:http://www.mssqlmct.cn/dba/?post=356
转自:https://blog.csdn.net/kk185800961
- --查看设置的最大最小每次
- 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
转载于:https://www.cnblogs.com/gered/p/9052236.html
运维脚本 内存管理统计(5)相关推荐
- 整理全网Shell脚本合集,Java脚本,运维脚本,告警脚本,监控脚本,日志脚本,docker脚本等---------持续更新!
整理全网Shell脚本合集,Java脚本,运维脚本,告警脚本,监控脚本,日志脚本,docker脚本等---------持续更新! 一.ffmpeg脚本 1.1 打开进程,并判断进程数量 1.2 关闭进 ...
- python怎么写运维脚本_python运维脚本实例
file是一个类,使用file('file_name', 'r+')这种方式打开文件,返回一个file对象,以写模式打开文件不存在则会被创建.但是更推荐使用内置函数open()来打开一个文件 . 首先 ...
- oracle税务运维脚本练习,荣欣Linux运维+Oracle DBA初级+高级全套实战训练
第一阶段:企业版Linux系统运维基础.项目实战:112课时xa0 第二阶段:基于互联网门户Linux应用集群与Mysql数据库集群架构设计与维护,项目实战:112课时 第三阶段:Oracle DBA ...
- bind blz mysql_MySQ DBAL重点剖析课程 企业级MySQL系统安全与DBA运维日常事务管理 运维DBA必备宝典...
MySQ DBAL重点剖析课程 企业级MySQL系统安全与DBA运维日常事务管理 运维DBA必备宝典 本资源由JAD资源网收集整理丨www.jiuandun.com 资源简介 MySQ DBAL重点剖 ...
- 云计算示范项目_瑞松科技基于工业互联网的设备运维及工艺管理云平台成功入选2020年工业互联网试点示范项目...
2020年12月28日,工业和信息化部发布2020年工业互联网试点示范项目名单公示,瑞松科技申报项目<基于工业互联网的设备运维及工艺管理云平台>成功入选试点示范项目平台集成创新应用方向,再 ...
- python自动化办公 51cto_利用python实现批量自动化运维脚本案例
本文为通过密码或密钥实现python批量自动化运维脚本案例分享,是老男孩linux培训 python课程教学案例内容,后续会分享多线程并发执行这个脚本的更高级的功能(http://oldboy.blo ...
- 简单python脚本实例-五个python常用运维脚本面试题实例
原标题:五个python常用运维脚本面试题实例 一.用Python写一个列举当前目录以及所有子目录下的文件,并打印出绝对路径 #!/usr/bin/envpython import os for ro ...
- 让你一步步成为运维专家之各种运维脚本
让你一步步成为运维专家之各种运维脚本 最近想做一个自动化运维的脚本,就整理一些资料,分享出来,一起共勉! 运维脚本参考:https://github.com/SwordfallYeung/BigDat ...
- 经典的运维脚本三步曲
无论是应用运维,还是数据库运维,均可以分为"人肉"-"自动化"-"智能化"阶段,其中自动化阶段,主要是将一些人做的操作,尤其是一些重复性操作 ...
最新文章
- TextView 添加Onclick 无效
- qt数据库有效插件为空的情况
- ReactJS入门之前端开发的演变
- Java Spring Security示例教程中的2种设置LDAP Active Directory身份验证的方法
- 【clickhouse】BAT 都在追捧的 ClickHouse ,到底有多快 笔记
- springcloud服务熔断和服务降级的自我理解
- linux 权限rwx(4,2,1)详细说明
- 课设——C语言学生成绩管理系统
- Java自动生成word文档,用心看这篇就够了【重点】
- Python爬虫:爬取酷狗音乐!动不动就给我来个付费音乐!没用的!
- 程序员必备开发神器【MAC篇】
- Intro.js 分步向导插件使用方法
- 【5G手机漏接电话问题解决方式】
- 【AI视野·今日CV 计算机视觉论文速览 第154期】Wed, 4 Sep 2019
- c语言oct hex dec用法,C++ 如何用cout输出hex,oct,dec的解决方法
- Java设计模式--------观察者模式
- 拼图游戏怎样切换代码html,HTML5技术之图像处理:一个滑动的拼图游戏-H5教程
- 华为鸿蒙os家电,搭载华为鸿蒙OS的美的产品上市
- 为什么都说Dubbo不适合传输大文件?Dubbo支持的协议
- 手动修复本地DNS教程