tempdb數據文件暴增,導致服務器磁盤空間被耗盡!
1.查看tempdb的使用分配情況
use tempdb go SELECT top 10 t1.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_time from sys.dm_db_session_space_usage t1 inner join sys.dm_exec_sessions as t3 on t1.session_id = t3.session_id where (t1.internal_objects_alloc_page_count>0 or t1.user_objects_alloc_page_count >0 or t1.internal_objects_dealloc_page_count>0 or t1.user_objects_dealloc_page_count>0) order by t1.internal_objects_alloc_page_count desc
2.從internal_objects_alloc_page_count和internal_objects_dealloc_page_count可以看出,給session分配了44096頁,計算一下:
select 44096*8/1024/1024 as [size_GB]
可能是因為時間太久,已經找不到導致暴增的會話。
3.如果產生問題的會話還存在的話,可以根據會話id進一步查看具體執行的sql內容
select p.*,s.text from master.dbo.sysprocesses p cross apply sys.dm_exec_sql_text(p.sql_handle) s where spid = 74
臨時重啟了數據庫服務器后解決問題。但是目前還要繼續監控分析,因為沒有根本解決問題。