我們有一個SQL Server 2000生產環境,其中突然(即過去3天)導致tempdb數據文件增長得非常大(45個演出數據庫僅有10個演出)。 昨天,再次發生之後,我們收縮了數據庫並單獨運行主要批處理過程而沒有任何問題。不過,今天早上該數據庫備份了45個演出。Sql Server 2000 - tempdb增長非常大
是否有一個簡單的方法來找出是什麼導致這個數據庫增長如此之大?理想情況下,可以在今天看到的東西,但如果沒有明天可以獲得的信息。
順便說一句:收縮數據庫可在幾秒鐘內恢復空間。
我們有一個SQL Server 2000生產環境,其中突然(即過去3天)導致tempdb數據文件增長得非常大(45個演出數據庫僅有10個演出)。 昨天,再次發生之後,我們收縮了數據庫並單獨運行主要批處理過程而沒有任何問題。不過,今天早上該數據庫備份了45個演出。Sql Server 2000 - tempdb增長非常大
是否有一個簡單的方法來找出是什麼導致這個數據庫增長如此之大?理想情況下,可以在今天看到的東西,但如果沒有明天可以獲得的信息。
順便說一句:收縮數據庫可在幾秒鐘內恢復空間。
與Jimmy同意,您需要使用SQL Profiler來查找創建如此密集的臨時對象。這可能是臨時表,使用一些報告或類似的東西。
我會設置一些Profiler跟蹤來運行整夜跟蹤可能發生的事件:跟蹤運行超過10秒的任何事情,產生超過1M個數據讀取的任何事情,產生超過1M個寫入的任何事情(這將是三條獨立的痕跡)。很難說,很大程度上取決於你的環境和系統;跟蹤這些東西可能需要很長時間(因爲您只能在一夜之間運行並在第二天查看)。由於它是tempdb,它可能是一個單一的大動作,而不是一羣小傢伙(除非你有聲明事務)。 – 2009-07-13 16:00:15
你是否有一份工作正在運行,重建索引?這可能是它使用SORT_IN_TEMPDB
或做排序可能將tempdb擴展
這可能有事情做與在tempdb設置爲恢復模式的任何其他大型查詢。它可能設置爲FULL而不是BULK-LOGGED。完全恢復將增加事務日誌大小,直到執行備份。
查看數據文件大小與事務日誌大小。
我不是一個DBA,但一些想法:
##tempTable
?我想謝謝大家的答案,因爲他們肯定導致了問題的原因。
我們打開了SQL分析器,確定發現了大量的大容量負載。由於我們正在開展一個項目,以將「冒犯性」的工作轉移到mysql中,因此我們現在可能只會看一些事情。
聽起來像一個服務器庫問題......但你可能想看看Sql Profiler。 – 2009-07-13 14:57:44