none
TEMPDB size RRS feed

  • 問題

  • 公司有台 sql2000 with sp4 (server_db1), 有個10G大小叫salesdb的database, 需要24小時運作.

    最近見tempdb再次十分大, 至20G, 並且運作慢了很多, 其實每次遇上同樣情況 行DBCC SHRINKDATABASE、DBCC SHRINKFILE (tempdb)都沒有用 (used only 2G, 其他也是FREE SPACE). 要reboot server 自動把tempdb佔用空間縮小.

     

    由於24小時使用, 每次REBOOT也會影響用戶工作. 請問有沒有方法令tempdb自動減細. THANKS ALL

     

    2007年3月28日 上午 05:48

解答

  • Hi: 您好,

    如果您確認要進行 Shrink DB 的作業,可以利用 Job 的方式,進行排程來進行 Shrink DB。

    希望對您有幫助 ... ^

    Best Regards
    Derrick Chen 德瑞克

    2007年3月29日 上午 08:08

所有回覆

  • Hi: 您好,

    如果您確認要進行 Shrink DB 的作業,可以利用 Job 的方式,進行排程來進行 Shrink DB。

    希望對您有幫助 ... ^

    Best Regards
    Derrick Chen 德瑞克

    2007年3月29日 上午 08:08
  • 一般来讲, tempdb大小是整个其他数据库大小总和的15%~20%.
    像你这个情况, 除非还有其他的数据库也在run.否则应该先看一下数据库的设计。
    比如:

    有没有过多的使用cursor
    有没有过多的full table scan, 这个可以利用index analyzer 来看。
    有没有生成的临时表没有被及时drop....



    2007年4月5日 下午 01:34
  •  TomCheng 寫信:

    公司有台 sql2000 with sp4 (server_db1), 有個10G大小叫salesdb的database, 需要24小時運作.

    最近見tempdb再次十分大, 至20G, 並且運作慢了很多, 其實每次遇上同樣情況 行DBCC SHRINKDATABASE、DBCC SHRINKFILE (tempdb)都沒有用 (used only 2G, 其他也是FREE SPACE). 要reboot server 自動把tempdb佔用空間縮小.

     

    由於24小時使用, 每次REBOOT也會影響用戶工作. 請問有沒有方法令tempdb自動減細. THANKS ALL

     

     

     

    從你的描述中有幾個部分必須要澄清的

    • Tempdb 配置磁碟空間大小與資料庫運作的效能不見得有直接關係,如果要解決的是資料庫效能的問題,那應該是效能調整的問題,可參考站上其他文章
    • 會造成Tempdb 配置空間加大的原因,不外乎是應用程式使用 Group by ,Order by , 或建立暫時性資料庫物件(物件名稱以 #,##開頭 )...,因此若要Tempdb 的空間不要佔據太多磁碟空間,根本的方式應該去檢查程式的寫法,而不是去思考如何手動縮小空間
    • 一般的經驗若是使用DBCC Shrinkfile 時,若是縮小的是Log File 會比較快,若是Data File 會比較久(但是一定會做完,畢竟Data File 與 Log File 檔案結構不一權)
    2007年4月18日 上午 02:01
  • thankyou

    可惜小弟公司production server 是程式員設計, 根本無權過問, 只有問題出現時他們便走出來@#%^$$@$#%, 說成是operator沒解決問題........

    2007年4月18日 上午 05:27