tempdb大小问题

Dear SQL(燊) 2021-02-22 03:57:42
大神们,为什么dm_db_session_space_usage中的(user_objects_alloc_page_count+internal_objects_alloc_page_count)大于tempdb 文件大小?
...全文
216 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Dear SQL(燊) 2021-02-23
  • 打赏
  • 举报
回复
引用 8 楼 唐诗三百首 的回复:

-- 查询tempdb数据库文件及文件大小
select file_id,type_desc,name,physical_name,[filesize(MB)]=cast(size*8/1024.0 as decimal(10,2))
 from master.sys.master_files
 where database_id=db_id('tempdb')
我是想跟踪每个SESSION使用的大小
唐诗三百首 2021-02-23
  • 打赏
  • 举报
回复

-- 查询tempdb数据库文件及文件大小
select file_id,type_desc,name,physical_name,[filesize(MB)]=cast(size*8/1024.0 as decimal(10,2))
 from master.sys.master_files
 where database_id=db_id('tempdb')
Dear SQL(燊) 2021-02-22
  • 打赏
  • 举报
回复
引用 5 楼 唐诗三百首 的回复:
已分配的页面数 - 已释放的页面数 = 当前实际分配的页面数 ?
也不对,包含了一些负数都还有67G
唐诗三百首 2021-02-22
  • 打赏
  • 举报
回复
已分配的页面数 - 已释放的页面数 = 当前实际分配的页面数 ?
Dear SQL(燊) 2021-02-22
  • 打赏
  • 举报
回复
SQL 是这样写的
select session_id,user_objects_alloc_page_count=sum(user_objects_alloc_page_count*8.0/1024/1024),internal_objects_alloc_page_count=sum(internal_objects_alloc_page_count*8.0/1024/1024)
	from (
		select session_id,user_objects_alloc_page_count,internal_objects_alloc_page_count
		from tempdb.sys.dm_db_task_space_usage(nolock)
		where database_id=2
		union all
		select session_id,user_objects_alloc_page_count,internal_objects_alloc_page_count
		from tempdb.sys.dm_db_session_space_usage(nolock)
		where database_id=2
		) a
	group by session_id
Dear SQL(燊) 2021-02-22
  • 打赏
  • 举报
回复
引用 1 楼 唐诗三百首 的回复:
除了已分配的页面数, 可能也需考虑已释放的页面数, 对应字段: user_objects_dealloc_page_count, internal_objects_dealloc_page_count. tempdb的使用是动态分配和释放的过程.
文件大小7-8个G,但[user_objects_alloc_page_count+internal_objects_alloc_page_count]300多G
Dear SQL(燊) 2021-02-22
  • 打赏
  • 举报
回复
引用 1 楼 唐诗三百首 的回复:
除了已分配的页面数, 可能也需考虑已释放的页面数, 对应字段: user_objects_dealloc_page_count, internal_objects_dealloc_page_count. tempdb的使用是动态分配和释放的过程.
已释放字段【user_objects_dealloc_page_count, internal_objects_dealloc_page_count】更大
唐诗三百首 2021-02-22
  • 打赏
  • 举报
回复
除了已分配的页面数, 可能也需考虑已释放的页面数, 对应字段: user_objects_dealloc_page_count, internal_objects_dealloc_page_count. tempdb的使用是动态分配和释放的过程.

27,581

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧