Clerk:MEMORYCLERK_SQLCLR

MEMORYCLERK_SQLCLR 消耗的memory很高,如下图

查看CLR消耗的内存总计

SELECT SUM(domc.pages_kb) AS [TotalPagesKb],
       SUM(domc.virtual_memory_committed_kb) AS [TotalVirtualMemory_Committed_Kb]
FROM   sys.dm_os_memory_clerks domc
WHERE  domc.[type] LIKE ‘%CLR%‘
AND    domc.[memory_node_id] <> 64;

如何控制CLR的内存消耗?

Appendix 由于查询内存消耗的脚本

select top 11
    mc.type,mc.name,
    sum(mc.pages_kb) as AllocatedPages_KB,
    sum(mc.virtual_memory_reserved_kb) as VM_Reserved_KB,
    sum(mc.virtual_memory_committed_kb) as VM_Committed_KB,
    --sum(mc.shared_memory_reserved_kb) as ShareMem_Reserved_KB,
    --sum(mc.shared_memory_committed_kb) as ShareMem_Committed_KB,
    max(mc.page_size_in_bytes)/1024 as SinglePageSize_KB
from sys.dm_os_memory_clerks mc
group by mc.type,mc.name
order by AllocatedPages_KB desc,mc.type,mc.name;

SELECT top 111 object_name, counter_name, instance_name, cntr_value, cntr_type
FROM sys.dm_os_performance_counters
where counter_name like N‘%clr%‘
order by cntr_value desc 
时间: 2024-10-28 20:15:45

Clerk:MEMORYCLERK_SQLCLR的相关文章

SQL SERVER 内存学习系列(二)-DMV查看内存信息

内存管理在SQL Server中有一个三级结构.底部是内存节点,这是最低级的分配器,用于SQL Server的内存.第二个层次是由内存Clerk组成,这是用来访问内存节点和缓存存储,缓存存储则用于缓存.最上层包含内存对象,它提供了一个比内存Clerk更小程度的粒度,内存对象允许直接.只有Clerk可以访问存储节点,来分配内存,所以每一个需要分配大量内存的组件都需要在SQL Server服务启动时创建它自己的内存Clerk. 以前版本的SQL Server需要SQL Server内存分配之外的VA

Oracle学习系列1-7

Oracle学习系列1 两个服务必须启动: OracleOraDb10g*TNListener 和 OracleService*** 使用sqlplusw先进行环境的设置 set linesize 300    ; set pagesize 30     ; 编辑sql命令: ed a.sql 执行 @a 切换用户: conn User/passwd   [as sysdba|sysoper ] conn system/manager conn sys/change_on_install  as

Oracle笔记(五) 单行函数

Oracle笔记(五) 单行函数 虽然各个数据库都是支持SQL语句的,但是每一个数据库也有每一个数据库自己所支持的操作函数,这些就是单行函数,而如果要想进行数据库开发的话,除了要会使用SQL之外 ,就是要多学习函数. 单行函数主要分为以下五类:字符函数.数字函数.日期函数.转换函数.通用函数: 一.字符函数 字符函数的功能主要是进行字符串数据的操作,下面给出几个字符函数: UPPER(字符串 | 列):将输入的字符串变为大写返回: LOWER(字符串 | 列):将输入的字符串变为小写返回: IN

Oracle 11g数据库详解(2015-02-28更新)

Oracle 11g数据库详解 整理者:高压锅 QQ:280604597 Email:[email protected] 大家有什么不明白的地方,或者想要详细了解的地方可以联系我,我会认真回复的 1   简介 数据库操作主要有以下几步: 1.  启动.停止数据库 2.  连接.断开数据库 3.  创建.修改.删除数据库用户 4.  表空间 5.  新建.修改.删除表 6.  查询.插入.修改.删除表数据 7.  新建.修改.删除视图 8.  新建.修改.删除存储过程 9.  新建.修改.删除触发

Oracle学习(2):过滤和排序

Oracle的过滤与排序 where过滤语法 SQL> --查询10号部门的员工 SQL> select * 2  from emp 3  where deptno=10; EMPNO ENAME    JOB              MGR HIREDATE         SAL       COMM     DEPTNO ---------- -------- --------- ---------- -------------- ----- ---------- ----------

性能调优之:缓存

在执行任何查询时,SQL Server都会将数据读取到内存,数据使用之后,不会立即释放,而是会缓存在内存Buffer中,当再次执行相同的查询时,如果所需数据全部缓存在内存中,那么SQL Server不会产生Disk IO操作,立即返回查询结果,这是SQL Server的性能优化机制. 一,主要的内存消费者(Memory Consumer) 1,数据缓存(Data Cache) Data Cache是存储数据页(Data Page)的缓冲区,当SQL Server需要读取数据文件(File)中的数

JAVA-Unit05: 视图、序列、索引 、 约束

Unit05: 视图.序列.索引 . 约束 视图 数据库对象之一 视图在SQL语句中体现的角色与表相同, 但它并非一张真实存在的表,它对应的 是一个查询语句的结果集. 创建一个查看10号部门员工信息的视图: CREATE VIEW v_emp_dept10 AS SELECT ename,sal,job,deptno FROM emp WHERE deptno=10 DESC v_emp_dept10 SELECT * FROM v_emp_dept10 修改视图就是替换该视图对应的子查询. 使

Oracle学习(11):PLSQL程序设计

PL/SQL程序结构及组成 什么是PL/SQL? ?PL/SQL(Procedure Language/SQL) ?PLSQL是Oracle对sql语言的过程化扩展 ?指在SQL命令语言中增加了过程处理语句(如分支.循环等),使SQL语言具有过程处理能力. SQL优点 交互式非过程化: 数据操纵功能强: 自动导航语句简单: 调试容易使用方便. 把SQL语言的数据操纵能力与过程语言的数据处理能力结合起来,使得PLSQL面向过程但比过程语言简单.高效.灵活和实用. 常用的结合语言 lPlsql(or

设计模式学习第一天:23种设计模式(全)

C#常见的设计模式 一.概要: 模式分为三种,设计模式.体系结构模式与惯用法.其中惯用法是一种语言紧密相关的模式,例如,定界加锁模式其实是一种惯用法. 在C#项目开发过程中,很多情况下您已经使用了某些模式,但或许您并不知道自己所使用的这种解决方案是一种已经被总结归纳的模式. 工厂.策略.桥接.模板方法.代理等等23种Gof经典模式是属于设计模式,设计模式的粒度相对较小,基本上用于提高模块内部的可扩展性和可维护性需求 三层.MVC.IoC/DI等属于体系结构模式,粒度比设计模式大,它是从项目的整体