You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

tempdb页面状态疑问:除已分配/已释放外还有其他状态吗?

关于sp_WhoIsActive中tempdb_current列的困惑解答

你对页面状态的理解偏窄了,这里的tempdb_allocations和tempdb_current的计算逻辑不是基于“单页的二元状态”,而是累计统计:

  • tempdb_allocations是查询从运行开始到统计时刻,累计分配过的所有tempdb页面总数——包括已经用完释放的,和当前还在占用的。
  • 用来减去的“已释放页面”是同一时间段内,累计释放掉的tempdb页面总数。

两者相减得到的tempdb_current,是当前查询实际还在占用的tempdb页面数。举个例子:

  • 某查询创建临时表分配了100个页面,之后删除临时表释放了80个页面,此时累计分配是100,累计释放是80,tempdb_current就是20。这20个页面可能是还没被SQL Server回收的,或者是查询后续操作又用到的。

简单说,这俩列是“总分配量”和“当前持有量”的关系,不是单页的状态划分——页面确实只有已分配(被占用)或已释放(可复用),但统计的是累计值,所以相减才有意义。

内容的提问来源于stack exchange,提问作者J. Mini

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 11:57:35