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
- oracle臨時表空間Oracle
- Oracle臨時表空間檢視、新增臨時表空間資料檔案、修改預設臨時表空間 方法!Oracle
- 批量處理時臨時增加回滾表空間臨時表空間檔案
- Sqlserver delete表部分資料釋放資料檔案空間SQLServerdelete
- 臨時表空間的建立、刪除,設定預設臨時表空間
- mysql臨時表,臨時表空間,ibtmp1表空間暴增原因初探MySql
- Oracle 臨時表空間概念Oracle
- oracle臨時表空間組Oracle
- oracle的臨時表空間Oracle
- Oracle Temp 臨時表空間Oracle
- delete不釋放表空間delete
- 【臨時表空間組】臨時表空間組的建立、維護及應用
- 【儲存管理】建立臨時表空間組、建立臨時表空間組及使用
- 【實驗】重建臨時表空間解決臨時表空間過大問題
- 如何釋放Mac空間?釋放Mac系統空間小技巧Mac
- 【臨時表空間】11g中使用 SHRINK方法縮小臨時表空間和臨時檔案
- 【SQLServer】Tempdb空間異常增長,空間佔用非常大SQLServer
- SQLServer行版本資訊吃資料庫tempdb空間SQLServer資料庫
- 【臨時表空間】11g中使用 SHRINK方法縮小臨時表空間和臨時檔案(續)
- oracle臨時表空間相關Oracle
- MySQL InnoDB臨時表空間配置MySql
- Oracle TEMP臨時表空間概念Oracle
- Oracle 臨時表空間的概念Oracle
- 臨時表空間操作總結
- ORACLE臨時表空間總結Oracle
- oracle 重建臨時表空間 tempfileOracle
- 刪掉Oracle臨時表空間Oracle
- ORACLE臨時表空間的清理Oracle
- oracle 表空間,臨時表空間使用率查詢Oracle
- ORACLE臨時表和SQLSERVER臨時表異同OracleSQLServer
- Oracle修改預設表空間和預設臨時表空間Oracle
- 臨時表空間的空間使用情況查詢
- Oracle Temp臨時表空間處理Oracle
- ORACLE預設的臨時表空間Oracle
- oracle的臨時表空間temporary tablespaceOracle
- oracle清理和重建臨時表空間Oracle
- 臨時表空間的申請與釋放問題學習_20091203