usetempdbgoSELECTtop10t1.session_id,t1.internal_objects_alloc_page_count,t1.user_objects_alloc_page_count,t1.internal_objects_dealloc_page_count,t1.user_objects_dealloc_page_count,t3.login_name,t3.status,t3.total_elapsed_timefromsys.dm_db_session_space_usaget1innerjoinsys.dm_exec_sessionsast3ont1.session_id=t3.session_idwhere(t1.internal_objects_alloc_page_count>0ort1.user_objects_alloc_page_count>0ort1.internal_objects_dealloc_page_count>0ort1.user_objects_dealloc_page_count>0)orderbyt1.internal_objects_alloc_page_countdesselectp.*,s.textfrommaster.dbo.sysprocessespcrossapplysys.dm_exec_sql_text(p.sql_handle)swherespid=上面查到的会话号从internal_objects_alloc_page_count和internal_objects_dealloc_page_count可以看出,给session分配了44096页,计算一下:select44096*8/1024/1024as[size_GB]如果产生问题的会话还存在的话,可以根据会话id进一步查看具体执行的sql内容1234@@@@@@@@@@@@@@@@@@@@@@@@@@@@sqlserver(2012)清理tempdb当数据库运行时间长了之后,tempdb变得特别大,几十G,受不了啊;当然我们知道重启SQLServer服务的话,tempdb数据库会自动重新创建的,从而使tempdb回归到初始大小。但是这是生产环境,不允许重启SQLServer服务。咋办呢,废话不多说,直接执行以下sql脚本即可:123456USE[tempdb]GODBCCFREESYSTEMCACHE('ALL')GODBCCSHRINKFILE(N'tempdev',500)GO