获取 SQL Server 查询历史记录

6 sql-server-2008 sql-server

我已经使用下面的查询来获取运行 SQL Server 的历史查询,但它没有给我整个历史,它只返回几乎每小时运行近 1/2 的查询。我想在一周前运行查询。有什么解决办法吗?

SELECT  dest.text, deqs.last_execution_time
FROM    sys.dm_exec_query_stats AS deqs
        CROSS APPLY sys.dm_exec_sql_text(deqs.sql_handle) AS dest
WHERE    dest.text NOT LIKE '%dest.text%' 
         order by deqs.last_execution_time desc
Run Code Online (Sandbox Code Playgroud)

小智 3

我相信这是在 SQL Server 的查询缓存中使用系统上可用的内存在内部处理的。我知道您可以通过运行以下命令清空所有缓存:

DBCC FREEPROCCACHE WITH NO_INFOMSGS;
Run Code Online (Sandbox Code Playgroud)

我只是认为您无法更改它保存的查询数量。

祝你好运。

  • 您绝对不能在生产系统上运行它!这是非常糟糕的,因为您将清除整个缓冲区缓存。 (4认同)