SQL SERVER内存按存放数据的类型,大概可以分为三类:

1、buffer pool,存放数据页面的缓冲区,sql server数据都是存放在一个个8K的页面里,当用户需要使用这个页面上的数据时,都是把整个页面加载到内存的buffer pool区缓存起         来。

2、各类consumer:

connect:SQL SERVER为每一个客户端连接分配一块内存,用来存储连接的信息,以及发过来的指令和缓存指令结果待待客户端取走

无数据:表、存储过程、索引等的元数据

锁:SQL SERVER中锁是稀有资源,会占用大量内存

Query plan:缓存SQL的执行计划

Optimizer:生成执行 计划过程中需要使用内存

3、线程内存:sql server会为每个线程分配0.5M的内存,用来存放线程的数据结构和相关信息

sql1:

-- 查询SqlServer总体的内存使用情况
select      type, sum(virtual_memory_reserved_kb) VM_Reserved, sum(virtual_memory_committed_kb) VM_Commited, sum(awe_allocated_kb) AWE_Allocated, sum(shared_memory_reserved_kb) Shared_Reserved, sum(shared_memory_committed_kb) Shared_Commited--, sum(single_pages_kb)    --SQL2005、2008--, sum(multi_pages_kb)        --SQL2005、2008
from    sys.dm_os_memory_clerks
group by type
order by type-- 查询当前数据库缓存的所有数据页面,哪些数据表,缓存的数据页面数量
-- 从这些信息可以看出,系统经常要访问的都是哪些表,有多大?
select p.object_id, object_name=object_name(p.object_id), p.index_id, buffer_pages=count(*)
from sys.allocation_units a, sys.dm_os_buffer_descriptors b, sys.partitions p
where a.allocation_unit_id=b.allocation_unit_id and a.container_id=p.hobt_id and b.database_id=db_id()
group by p.object_id,p.index_id
order by buffer_pages desc -- 查询缓存的各类执行计划,及分别占了多少内存
-- 可以对比动态查询与参数化SQL(预定义语句)的缓存量
select    cacheobjtype, objtype, sum(cast(size_in_bytes as bigint))/1024 as size_in_kb, count(bucketid) as cache_count
from    sys.dm_exec_cached_plans
group by cacheobjtype, objtype
order by cacheobjtype, objtype-- 查询缓存中具体的执行计划,及对应的SQL
-- 将此结果按照数据表或SQL进行统计,可以作为基线,调整索引时考虑
-- 查询结果会很大,注意将结果集输出到表或文件中
SELECT  usecounts ,refcounts ,size_in_bytes ,cacheobjtype ,objtype ,TEXT
FROM    sys.dm_exec_cached_plans cpCROSS APPLY sys.dm_exec_sql_text(plan_handle)
ORDER BY objtype DESC ;
GO

sql2:

select OBJECT_NAME(object_id) 表名,COUNT(*) 页数,COUNT(*)*8/1024.0 Mb
from   sys.dm_os_buffer_descriptors a,sys.allocation_units b,sys.partitions c
where  a.allocation_unit_id=b.allocation_unit_id and b.container_id=c.hobt_id           and database_id=DB_ID()
group by OBJECT_NAME(object_id)
order by 2 desc

参考:

http://www.cnblogs.com/zhaoguan_wang/p/4602866.html

http://blog.csdn.net/shutao917/article/details/51444424

http://blog.csdn.net/burgess_liu/article/details/52813727

http://blog.csdn.net/burgess_liu/article/details/17739725

http://blog.csdn.net/burgess_liu/article/details/17733149

sql server 各种等待类型-转

查看SqlServer的内存使用情况相关推荐

  1. Linux下的十个好用的命令工具:查看系统版本,显示目录的大小,查看硬盘HDD/SSD,硬盘测速,ssh时自动输入密码,查看程序的内存使用情况,查看I/O的速度,查看ssh密码错误日志,查找文件

    文章目录 1.查看系统版本 2.显示目录的大小 3.查看硬盘是HDD还是SSD 4.硬盘测速 5.在ssh的时候自动输入密码 6.查看程序的内存使用情况 7.查看I/O的速度 8.查看ssh密码错误日 ...

  2. cpu使用率 htop显示_Linux查看CPU和内存使用情况

    1.gnome-system-monitor GNOME System Monitor 是一个显示最近一段时间内的CPU.内存.交换区及网络的使用情况的视图工具.它还提供了一种查看CPU及内存使用情况 ...

  3. 【收藏】如何查看linux服务器内存使用情况

    如何查看linux服务器内存使用情况 https://www.cnblogs.com/hanmk/p/10556989.html [root@m-0 ~]# ps -eo pmem,pcpu,rss, ...

  4. [转]如何正确查看Linux机器内存使用情况

    原文链接 如何正确查看Linux机器内存使用情况 背景 只要工作上涉及到Linux机器,基本上都会有这样一个需求,查看内存使用情况,但是怎么看才正确呢?之前使用的是top命令,一直存在一个误区. 为什 ...

  5. Linux系统快速查看CPU和内存使用情况,附各参数详解

    Linux系统中查看CPU和内存使用情况,是一个运维工程师常见的事情,下面分享一下. 目 录 1.top命令 2.ps命令 3.free命令 1.top命令 top命令是Linux下常用的性能分析工具 ...

  6. Linux查看CPU和内存使用情况(ps、free、htop、atop、nmon、/proc/meminfo等)

    文章目录 Linux查看CPU和内存使用情况 Linux查看CPU和内存命令:ps 查看系统内存命令:free free与available的区别 htop (推荐) 安装 htop 参数 常用 界面 ...

  7. Linux之--查看CPU和内存使用情况

    Linux查看CPU和内存使用情况 一.top命令 二.ps指令 三.pamp命令 四.free命令 一.top命令 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状 ...

  8. Linux查看CPU和内存使用情况详解

    在系统维护的过程中,随时可能有需要查看 CPU 使用率,并根据相应信息分析系统状况的需要.在 CentOS 中, 可以通过 top 命令来查看 CPU 使用状况.运行 top 命令后,CPU 使用状态 ...

  9. 查看LINUX进程内存占用情况 top pmap ps

    可以直接使用top命令后,查看%MEM的内容.可以选择按进程查看或者按用户查看,如想查看oracle用户的进程内存使用情况的话可以使用如下的命令: (1)top top命令是Linux下常用的性能分析 ...

最新文章

  1. freemarker if判断
  2. 一文读懂SAP Leonardo物联网平台
  3. 015_html注释
  4. Tomcat使用shutdown.bat关闭会将其他Tomcat关掉的问题
  5. 看国外女神级程序员,直播写代码一年的感悟
  6. MongoDB(4)--MongoDB服务的启动
  7. 数据源管理 | 搜索引擎框架,ElasticSearch集群模式
  8. HDOJ 1753 明朝A+B
  9. java 7 Reflection详解(二),获取class对象信息
  10. linux 7 改网卡名称,CentOS7修改网卡名称
  11. 1. 英语邮件中经常用到的单句 (每次10句)
  12. 【接口测试】Jmeter+ant安装及简单使用教程(集成)
  13. 如何为人员办理离职停保
  14. 电路交换、报文交换、分组交换的区别与优缺点
  15. 【SAR图像分辨率】匹配跟踪算法和自聚焦算法提高SAR图像分辨率
  16. tensorflow下手写汉字识别及其可视化
  17. 【实践与问题解决30】苹果手机如何取消使用切换控制时候弹出的重要通知
  18. Solidity众筹案例
  19. stamps中gacos去除大气噪声
  20. 学霸,顾名思义,就是成绩非常好

热门文章

  1. 点击文字弹出一个DIV层窗口代码
  2. Python模块filecmp 文件比较
  3. oracle惯用缩写的含义
  4. Davinci DM6446开发攻略——LINUX GPIO驱动源码移植
  5. Java中Integer包装类之间的比较问题
  6. MongoDB应用场景
  7. JAVA 线程Join
  8. spring 使用redis集群配置
  9. 排序算法(一) 冒泡排序
  10. Android中蓝牙的基本使用