Sql-Server
是什麼導致數據庫.米_FF我__.米dFF一世一世和.mdf file突然長大
我試圖找出導致數據庫的 mdf 從 20 GB 膨脹到 100 GB 的原因。
到目前為止,我嘗試檢查自動增長事件以找到時間,但使用標準報告甚至預設跟踪文件都找不到。
我們沒有第 3 方監控工具來確認是否完成了任何維護工作(如重建)或任何其他過程。
我怎樣才能找到導致這個 mdf 增長的原因?
這將在我的回答中找到所有錯誤日誌文件中的所有自動增長活動仍處於活動序列中:
DECLARE @path NVARCHAR(260); SELECT @path = REVERSE(SUBSTRING(REVERSE([path]), CHARINDEX(CHAR(92), REVERSE([path])), 260)) + N'log.trc' FROM sys.traces WHERE is_default = 1; SELECT DatabaseName, HostName, ApplicationName, [FileName], SPID, Duration, StartTime, EndTime, FileType = CASE EventClass WHEN 92 THEN 'Data' ELSE 'Log' END FROM sys.fn_trace_gettable(@path, DEFAULT) WHERE EventClass IN (92,93) -- AND DatabaseName = N'AdventureWorks' ORDER BY StartTime DESC;
現在,一旦您確定了可疑的自動增長事件,您就可以看到導致該事件的應用程序名稱和主機名等資訊。您可能會通過相同的 SPID 擷取其他活動,但您不能依賴於此。只需查看在任意視窗內開始或結束的事情 - 這會查看之前 5 分鐘和之後 5 分鐘,並對上面觀察到的 SPID 進行硬編碼:
SELECT * FROM sys.fn_trace_gettable(@path, DEFAULT) WHERE StartTime >= DATEADD(MINUTE, -5, '2018-03-19 11:41:16.970') AND EndTime < DATEADD(MINUTE, 5, '2018-03-19 11:41:16.970') -- AND TextData IS NOT NULL AND SPID = 63;
如果您每天滾動瀏覽 20 個錯誤日誌文件,則說明某些內容配置不正確,或者您執行的操作過多導致這些日誌文件充滿噪音。恕我直言。