ITPub博客

首页 > 数据库 > SQL Server > SQL Server内存管理相关

SQL Server内存管理相关

原创 SQL Server 作者:abstractcyj 时间:2022-10-18 10:39:24 0 删除 编辑

select * from sys.dm_os_nodes;

select * from sys.dm_os_memory_nodes;

select * from sys.dm_os_memory_clerks order by virtual_memory_reserved_kb desc


SQL Server的内存管理器分为三层。最底层是内存节点:对应动态性能视图是sys.dm_os_memory_nodes, 第二层是内存分配员,对应的动态性能视图是sys.dm_os_memory_clerks。


从本机的sys.dm_os_memory_clerks可以看出,占用内存最大的分配员是MEMORYCLERK_SQLBUFFERPOOL, MEMORYCLERK_SQLCLR, MEMORYCLERK_SOSMEMMANAGER, MEMORYCLERK_XE_BUFFER, OBJECTSTORE_LOCK_MANAGER

缓存相关视图

sys.dm_os_memory_cache_counters,

注意:
CACHESTORE_OBJCP: 诸如存储过程,函数,触发器这类对象的已经编译的计划

CACHE_STORE_SQLCP: 不在存储过程中的SQL语句或批处理的缓存计划

CACHESTORE_PHDR:缓存了视图,约束和默认值的Algebrizer树。 Algerbrizer树是已经解析过表名和列名的SQL文本再解析后的结果。


SQLServer在遇到内存压力时,若确定设置了合适的内存大小,但是数据块缓存仍不断被换出到页面文件,可以考虑LPIM(L哦)


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/8520577/viewspace-2918845/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
曾从事java方向开发多年。近年已经转入数据库方向。主要擅长SQL优化,Oracle数据库问题诊断,Oracle备份与恢复等。服务于医药物流,医院等行业

注册时间:2010-01-26

  • 博文量
    602
  • 访问量
    1091582