上一篇提到动态T-SQL会产生较多的执行计划,这些执行计划会占用多少内存呢?今天从徐海蔚的书中找到了答案。动态视图不仅可以查到执行计划的缓存,数据表的页面缓存也可以查到,将SQL整理一下,做个标记。

  1. -- 查询SqlServer总体的内存使用情况
  2. select type
  3. , sum(virtual_memory_reserved_kb) VM_Reserved
  4. , sum(virtual_memory_committed_kb) VM_Commited
  5. , sum(awe_allocated_kb) AWE_Allocated
  6. , sum(shared_memory_reserved_kb) Shared_Reserved
  7. , sum(shared_memory_committed_kb) Shared_Commited
  8. --, sum(single_pages_kb) --SQL20052008
  9. --, sum(multi_pages_kb) --SQL20052008
  10. from sys.dm_os_memory_clerks
  11. group by type
  12. order by type
  13.  
  14. -- 查询当前数据库缓存的所有数据页面,哪些数据表,缓存的数据页面数量
  15. -- 从这些信息可以看出,系统经常要访问的都是哪些表,有多大?
  16. select p.object_id, object_name=object_name(p.object_id), p.index_id, buffer_pages=count(*)
  17. from sys.allocation_units a,
  18. sys.dm_os_buffer_descriptors b,
  19. sys.partitions p
  20. where a.allocation_unit_id=b.allocation_unit_id
  21. and a.container_id=p.hobt_id
  22. and b.database_id=db_id()
  23. group by p.object_id,p.index_id
  24. order by buffer_pages desc
  25.  
  26. -- 查询缓存的各类执行计划,及分别占了多少内存
  27. -- 可以对比动态查询与参数化SQL(预定义语句)的缓存量
  28. select cacheobjtype
  29. , objtype
  30. , sum(cast(size_in_bytes as bigint))/1024 as size_in_kb
  31. , count(bucketid) as cache_count
  32. from sys.dm_exec_cached_plans
  33. group by cacheobjtype, objtype
  34. order by cacheobjtype, objtype
  35.  
  36. -- 查询缓存中具体的执行计划,及对应的SQL
  37. -- 将此结果按照数据表或SQL进行统计,可以作为基线,调整索引时考虑
  38. -- 查询结果会很大,注意将结果集输出到表或文件中
  39. SELECT usecounts ,
  40. refcounts ,
  41. size_in_bytes ,
  42. cacheobjtype ,
  43. objtype ,
  44. TEXT
  45. FROM sys.dm_exec_cached_plans cp
  46. CROSS APPLY sys.dm_exec_sql_text(plan_handle)
  47. ORDER BY objtype DESC ;
  48. GO
  1.  

查看SqlServer的内存使用情况的更多相关文章

  1. 如何使用Linux命令行查看Linux服务器内存使用情况?

    一个服务器,最重要的资源之一就是内存,内存够不够用,是直接关系到系统性能的关键所在. 本文介绍如何查看Linux服务器内存使用情况, 1.free命令 free -m [root@localhost ...

  2. 查看Linux服务器内存使用情况

    一个服务器,最重要的资源之一就是内存,内存够不够用,是直接关系到系统性能的关键所在. 本文介绍如何查看Linux服务器内存使用情况, 1.free命令 free -m [root@localhost ...

  3. Linux查看CPU和内存使用情况 【转】

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

  4. 测试页面,页面里边一次加载50张不同的图片,每张5M以上,查看浏览器的内存使用情况

    测试页面 1.需要你写个测试页面,页面里边一次加载50张不同的图片,每张5M,查看浏览器的内存使用情况 2.可以10张 递增的方式测试 3.图片需要缩放,比如所有图片缩放成600*800的比例 目的 ...

  5. Linux查看CPU和内存使用情况总结

    Linux查看CPU和内存使用情况:http://www.cnblogs.com/xd502djj/archive/2011/03/01/1968041.html 在做Linux系统优化的时候,物理内 ...

  6. 如何正确查看Linux机器内存使用情况

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

  7. Linux查看CPU和内存使用情况(转)

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

  8. 查看LINUX进程内存占用情况

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

  9. Linux查看CPU和内存使用情况

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

随机推荐

  1. HTTP消息头

    (一)初识HTTP消息头 但凡搞WEB开发的人都离不开HTTP(超文本传输协议),而要了解HTTP,除了HTML本身以外,还有一部分不可忽视的就是HTTP消息头.做过Socket编程的人都知道,当我们 ...

  2. 一个简单的解决方法:word文档打不开,错误提示mso.dll模块错误。

    最近电脑Word无故出现故障,无法打开,提示错误信息如下: 问题事件名称: APPCRASH应用程序名: WINWORD.EXE应用程序版本: 11.0.8328.0应用程序时间戳: 4c717ed1 ...

  3. [转载]Magento 店铺多语言设置

    本文以扩展中文包为例: 首先进入自己 Magento 后台 系统 -> 管理商店(System -> Manage Stores) 单击 “创建店铺视图”(Create Store Vie ...

  4. Js全选,插入实现

    //全选 function CheckAll() { ids.splice(0, 1000000); var flag = $("#All_Check").attr("c ...

  5. 转:服务器控件的 ID,ClientID,UniqueID 的区别

    动态加载用户控件的怪问题 动态加载用户控件的时候,会因为调用一些控件的一些属性和方法而造成控件命名混乱. 因为add 一个用户控件或者 loadcontrol 的时候 如果没有指定控件的id,clie ...

  6. tensorflow0.8.0 安装配置

    参考官网:https://www.tensorflow.org/  Ubuntu15.10 + Eclipse Mars.2(4.5.2)官网最新 + Anaconda3-4.0.0 + Pydev4 ...

  7. 【转】How-To-Ask-Questions-The-Smart-Way

    提问的智慧 How To Ask Questions The Smart Way Copyright © 2001,2006,2014 Eric S. Raymond, Rick Moen 本指南英文 ...

  8. metronic后台模板学习 -- 所用外部插件列表

    插件名称 描述 URL jQuery 1.11.0 js库,不用介绍了 http://www.jquery.com jQuery Migrate plugin 1.2.1 jQuery 老版本过渡迁移 ...

  9. ehcache memcache redis -- java中的三大缓存

      三个缓存在java代码中用的是较多的,但是它们都有自己的应用场合,和优缺点.  Ehcache 1.初衷:减少数据库操作的高延时而设计.(缓存的目的,好像都是这个吧) 2.Apache Licen ...

  10. win7 一些快捷系统工具命令

    1.cleanmgr: 打开磁盘清理工具 2.compmgmt.msc: 计算机管理 3.conf: 启动系统配置实用程序 4.charmap: 启动字符映射表 5.calc: 启动计算器 6.chk ...