Sql-Server

確定異常事務日誌增長的原因

  • May 6, 2017

我有一個在 SQL Server 2008 上執行的應用程序(它是一個集群,但沒有故障轉移。)

以前,事務日誌過去每 2-3 天增長到 10-20GB。我們會縮小它(在備份之後)讓它再次填滿。在過去的幾周里,日誌一直以每天 20GB 的速度增長;我們不相信我們已經更改了應用程式碼,所以想知道是什麼過程導致了增長率的增加。

辨識導致事務日誌大小最大增加的事務的好策略是什麼?

備份或縮小文件將釋放磁碟空間。我只是認為這只是解決實際問題的創可貼。應用程序正在做更多的事情;從而使用比以前更多的資源。

此 SQL 顯示具有大多數“logical_writes”的查詢:

SELECT TOP 100
   st.text,
   execution_count,
   total_elapsed_time,
   total_worker_time,
   total_logical_reads,
   total_logical_writes,
   total_physical_reads,
   total_clr_time,
   creation_time, last_execution_time,
   pl.query_plan
FROM sys.dm_exec_query_stats ps with (NOLOCK)
   Cross Apply sys.dm_exec_sql_text(ps.sql_handle) st
   Cross Apply sys.dm_exec_query_plan(ps.plan_handle) pl
ORDER BY total_logical_writes desc
OPTION (RECOMPILE);

這個 T-SQL 可以幫助找到方向,但它並不是你真正要求的,因為邏輯寫!=寫。和邏輯寫入!= 日誌寫入。

為您的問題找到更完整的答案可能會非常有趣。

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