SQLServer如何釋放tempdb臨時表空間
SQLServer如何釋放tempdb臨時表空間:
SQLServer經常會遇到一個大SQL一下子把tempdb空間吃滿了,一般這類SQL都會大量使用臨時表空間,比如大量使用帶#的臨時表,#temp,還有就是大量使用排序操作。都會大量消耗臨時表。
當然臨時表也有好處,就是資料可以經過臨時表的中間加工處理後,讓最後要處理的資料變得比較少。這樣就能花費更少的時間把資料跑出來。
使用臨時表可以加快SQL的跑出的速度,但是卻會大量佔用臨時表空間。
不使用臨時表,如果資料量非常大的話可能導致SQL跑出的時間會大大增加,並導致其他資源被大量佔用,比如記憶體和CPU,也會加大磁碟的IO壓力。
一旦臨時表大量增大,最好的解決辦法是重啟SQLServer的資料庫服務。
因為臨時表空間在一直被使用的情況下是很難被收縮的。
重啟了 SQLServer的資料庫服務後臨時表空間會被立即釋放。
但是有一種情況測試下來 SQLServer的資料庫服務重啟後臨時表空間不會被釋放,只是tempdb裡面的空間釋放了,磁碟空間沒有釋放,需要再收縮tempdb才行。
這種情況是,比如原先tempdb資料檔案大小是10GB,然後增到到了100GB,如果這個時候你 重啟了 SQLServer的資料庫服務,那麼tempdb資料檔案會釋放到10GB,磁碟空間也會釋放到10GB。
如果 原先tempdb資料檔案大小是10GB,然後增到到了100GB,你這個時候去手動收縮了tempdb資料檔案到90GB大小, 這個時候你 重啟了 SQLServer的資料庫服務, 那麼tempdb資料檔案只會釋放到90GB, 磁碟空間也只會釋放到90GB。這個時候需要你手動把這個tempdb資料檔案收縮到10GB。磁碟才會釋放到10GB。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22996654/viewspace-2933547/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle臨時表空間檢視、新增臨時表空間資料檔案、修改預設臨時表空間 方法!Oracle
- mysql臨時表,臨時表空間,ibtmp1表空間暴增原因初探MySql
- 如何釋放Mac空間?釋放Mac系統空間小技巧Mac
- SQLServer行版本資訊吃資料庫tempdb空間SQLServer資料庫
- oracle臨時表空間相關Oracle
- 4.2.1.8規劃臨時表空間
- 刪除臨時表空間組
- MySQL InnoDB臨時表空間配置MySql
- 2.5.7 建立預設臨時表空間
- MySQL 5.7 新特性 共享臨時表空間及臨時表改進MySql
- oracle建立臨時表空間和資料表空間以及刪除Oracle
- 臨時表空間和回滾表空間使用率查詢
- SQLServer臨時表的使用SQLServer
- 消除臨時表空間暴漲的方法
- MYSQL造資料佔用臨時表空間MySql
- oracle 臨時表空間的增刪改查Oracle
- oracle11g 查詢臨時表空間的使用率和正在使用臨時表空間的使用者Oracle
- 臨時表空間被佔滿的原因查詢
- 臨時表空間ORA-1652問題解決
- oracle建立使用者,表空間,臨時表空間,分配許可權步驟詳解Oracle
- 檢視oracle臨時表空間佔用率的檢視Oracle
- lsof |grep deleted 釋放磁碟空間delete
- 10、MySQL Case-釋放ibtmp表空間正確姿勢MySql
- Sqlserver關於tempdb臨時資料庫最優檔案個數的最優實踐SQLServer資料庫
- Sqlserver 關於臨時表和表變數的總結SQLServer變數
- 臨時表空間使用率過高的解決辦法
- Oracle 12C RMAN備份佔用大量臨時表空間Oracle
- dbms_lob儲存過程導致臨時表空間100%儲存過程
- MySQL 5.7的表刪除資料後的磁碟空間釋放MySql
- Oracle資料庫高水位釋放——LOB欄位空間釋放Oracle資料庫
- 查詢過去一段時間內某條sql使用的臨時表空間大小SQL
- 12C關於CDB、PDB 臨時temp表空間的總結
- Jenkins臨時空間不足處理辦法Jenkins
- Linux檔案刪除空間未釋放Linux
- SQLSERVER 臨時表和表變數到底有什麼區別?SQLServer變數
- 16、表空間 建立表空間
- 當使用者無限制使用表空間配額且表空間有足夠空間時出現超出表空間的空間限額
- RM刪除檔案空間釋放詳解