SQLSERVER中的引用计数器 执行计划 set statistics io getnext
SQLSERVER中的引用计数器 执行计划 set statistics io getnext
执行计划的老化: 什么叫老化?就是没用了,弃用它.那在SQL SERVER怎么样去判断老化的执行计划呢?
每个查询计划和执行环境都有相关的成本因子,可表明编译结构所需的费用。这些数据结构还有一个年龄字段。对象每由连接引用一次,其年龄字段便按编译成本因子递增。
比如:
1)如果查询计划的成本因子为 8 并且被引用了两次,则其年龄变为 16。
2)惰性写入器进程定期扫描过程缓存中的对象列表。然后,惰性写入器减少每个对象的年龄字段,每扫描一次减少 1。
3)不断重复1)2)步骤,不断变化对象的年龄字段.
再举个例子:我的一个SQL语句成本因子为6.我第一次引用后 他的年龄变成6. 惰性写入器每2天扫描一次,6天后,它的年龄变成3(6-3). 然后三天后我又连续调用2次 ,年龄又变成了15.说明它至少还30天可以不被调用. 原因很简单 一旦对象的年龄字段为0 是惰性写入器进程将释放对象的条件之一,还有2个条件是: a.内存管理器需要内存而所有可用内存都正在使用。 b.对象在当前没有被连接引用。
因为每次引用对象时其年龄字段都会增加,所以经常被引用的对象的年龄字段不会减为 0,也不会从缓存老化掉。
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
这个代码,Reads/Write就会加1。所以这个值比较大,那语句一定做了比较多的I/O。
但是不能通过这个值计算出I/O的绝对数量。另外,这个值反映的是逻辑读写量,
不是物理读写量 相当于SET STATISTICS IO ON 27次运行了27次特定代码
GetNext() 方法返回一个数据行,它的调用次数作为 ActualRows 显示在使用 SET STATISTICS PROFILE ON 或 SET STATISTICS XML ON 生成的显示计划输出中。

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
2012-08-31 SQL Server char nchar varchar nvarchar的区别