【SQLServer】Tempdb空間異常增長,空間佔用非常大
一、問題現象
我們一套量產SQLServer,在半夜的時候發出磁碟空間不足告警,我登上去檢查後,發現 tempdb 已經超過500GB。
二、原因解析
跟AP user溝通後,AP user告訴我們,由於AP邏輯出現問題,導致tempdb異常增長。
三、解決方法
1、如果可以重啟 SQL Server,tempdb 會自動重新建立,從而使 tempdb 迴歸到初始大小。但是量產環境儘量不要重啟,除非萬不得已。
2、直接收縮 tempdb(但是始終不成功)。
(1)命令
|
DBCC SHRINKFILE (N'templog.ldf' , 10) -- 收縮日誌到 10MB
GO
(2)圖形化介面
3、如果出現無法收縮tempdb的情況,可先使用以下方式處理,再收縮。
SQL Server 2005 及後續版本為了增強 tempdb 的效能,會快取一些 IAM 頁,以備將來重新使用這些頁面。在這種情況下,必須首先釋放 IAM 頁,才能釋放其對應的頁面。因此,通過 DBCC FREESYSTEMCACHE,從所有快取中釋放所有未使用的快取條目,然後再收縮 tempdb 。
|
DBCC FREESYSTEMCACHE 使用參考 -- https://docs.microsoft.com/zh-cn/sql/t-sql/database-console-commands/dbcc-freesystemcache-transact-sql
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30776559/viewspace-2149354/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQLServer如何釋放tempdb臨時表空間SQLServer
- SQLServer行版本資訊吃資料庫tempdb空間SQLServer資料庫
- Oracle的home目錄空間佔用異常處理Oracle
- undo表空間佔用磁碟空間滿案例處理
- 如何使Xcode佔用更少的空間 Xcode佔用空間太大解決方法XCode
- MacPro系統佔用空間太大Mac
- AWR佔用sysaux表空間太大UX
- Oracle檢視物件佔用空間Oracle物件
- oracle表空間增長趨勢分析Oracle
- oracle查詢表空間的空間佔用情況Oracle
- C++筆記--名字空間和異常C++筆記
- 檢視佔用磁碟空間的程式
- linux檢視mysql佔用磁碟空間LinuxMySql
- SQL Server 檢視錶佔用空間大小SQLServer
- oracle 表空間關閉自增長 autoextend offOracle
- 解決Ubuntu虛擬機器佔用空間與實際空間不符問題Ubuntu虛擬機
- Oracle查詢表佔磁碟空間大小及移動表空間Oracle
- 表空間檢測異常的問題診斷
- ORACLE SYSTEM表空間異常與審計的功能Oracle
- 如何檢視某個查詢用了多少TempDB空間
- OGG相關的CPATURE導致SYSAUX表空間異常暴增處理UX
- dbms_space(分析段增長和空間的需求)
- PostgreSQL DBA(190) - 行大小和空間佔用SQL
- 去除Windows7系統佔用空間因素Windows
- oracle 檢視錶所佔用的空間大小Oracle
- MYSQL造資料佔用臨時表空間MySql
- 表空間常見的操作
- oracle 日誌檔案佔空間Oracle
- oracle10g的sysaux空間暴增與空間回收-轉載OracleUX
- win7系統空間佔用大是怎麼回事?win7系統空間佔用大的清理步驟Win7
- 檢視資料庫佔用磁碟空間的方法資料庫
- PHP陣列到底佔用多少記憶體空間PHP陣列記憶體
- 乾貨|Linux中限制目錄佔用空間Linux
- linux下找出佔用空間最大的目錄Linux
- 計算一個表佔用的空間的大小
- 查詢表空間已使用空間和空閒空間的簡單檢視
- MySQL空間最佳化(空間清理)MySql
- 【HotSpot】一個java物件佔多少空間HotSpotJava物件