SqlServer 2008的tempdb數據文件大小暴增處理


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

  

臨時重啟了數據庫服務器后解決問題。但是目前還要繼續監控分析,因為沒有根本解決問題。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM