Sql-Server-2005

關於 DBCC FREEPROCCACHE 的問題

  • May 1, 2017

我使用 spAskBrent 來解決 SQL Server 2005 性能問題。

我發現問題是有人執行了 DBCC FREEPROCCACHE。它導致我的數據庫性能低下(PLE 非常低)並且查詢超時。

如何找出誰執行了查詢以釋放計劃記憶體?

default trace如果在實例上仍然啟用它,您應該能夠在 SQL Server 中找到它。擷取的事件之一是,可以在此處Security Audit: Audit DBCC Event閱讀有關該事件的更多資訊。

如果您發現預設跟踪已啟用,請從 MSSQLTips.com 文章中查詢以下查詢,以查找 DBCC 的執行時間:

DECLARE @path NVARCHAR(260)

SELECT @path=path FROM sys.traces WHERE is_default = 1

--Security Audit: Audit DBCC CHECKDB, DBCC CHECKTABLE, DBCC CHECKCATALOG,
--DBCC CHECKALLOC, DBCC CHECKFILEGROUP Events, and more.
SELECT TextData, Duration, StartTime, EndTime, SPID, ApplicationName, LoginName  
FROM sys.fn_trace_gettable(@path, DEFAULT)
WHERE EventClass IN (116) AND TextData like 'DBCC%CHECK%'
ORDER BY StartTime DESC

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