Sql-Server

SQL Server 2008 R2 SP1 - Tempdb“可用空間”顯示負值

  • July 24, 2021

請幫忙,因為這個問題讓我發瘋……

Tempdb有四個數據文件和一個日誌文件。它們都位於同一個專用驅動器上。

當我在 SQL Server Management Studio (SSMS) 中右鍵點擊tempdb以查看屬性-> 正常…我看到“大小”為 ~65000 MB,而“可用空間”為 ~64000 MB。但是,當我嘗試通過 GUI 縮小文件時,我看到“目前分配的空間”沒有改變,並且仍然顯示初始大小。

這也是“可用空間”顯示為負數的地方。到目前為止,我發現的唯一解決方法是重新啟動 SQL Server 以刷新tempdb,但我不能繼續這樣做。

有沒有人遇到過這個並且知道它的根本原因/永久解決方案?

打開查詢分析器執行DBCC UPDATEUSAGE('tempdb') 完成後,檢查 temdb 值,它應該顯示真實值。

此外,可能會對您有所幫助。

此外,使用 dbcc opentran 或 sp_whoisactive(Adam Mechanic 的 SP)檢查是否有任何打開的事務

這是此處描述的 SQL Server 2008 SP1 中的一個錯誤。

出於好奇,它是否會導致任何性能問題?

好吧,您必須檢查您的 tempdb 設置並概述伺服器的使用情況。Microsoft 提供了管理 tempdb 和優化其性能的主要建議(請參閱http://msdn.microsoft.com/en-us/library/ms175527(v=sql.105).aspx)。嘗試應用它們並查看結果(在我的情況下,它有助於將我的 17GB 數據庫優化到 4GB)

您也可以使用 sp_spaceused proc it temp 數據庫。它會告訴您哪個表佔用了數據文件中的大部分空間。您還可以使用 Profiler 檢測文件自動增長和日誌文件自動增長。如果它經常更改 - 您的 tempDb 會自動佔用額外的空間,並且您可能必須更改使用 #tmp 表的邏輯。

並且在工作伺服器上縮小 tempdb,它可能會給你在其他數據庫上的查詢帶來一些麻煩(只在單一模式下執行)

引用自:https://dba.stackexchange.com/questions/38706