SQL Server内存管理相关

来源:这里教程网 时间:2026-03-02 12:24:34 作者:

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哦)

相关推荐