Sql server 从SQL Server记录数据';活动监视器

Sql server 从SQL Server记录数据';活动监视器,sql-server,performance,Sql Server,Performance,我希望记录SQL Server的“活动监视”面板中显示的数据。Activity Monitor可以很好地概述当前实例中数据库上发生的情况,因此最好能够在几个小时内记录这些数据,以便能够对其进行更详细的分析 我对“最近昂贵的查询”面板的内容很感兴趣。我知道这些数据来自sys.dm_exec_请求和sys.dm_exec_query_stats,所以编写一个小脚本定期将这些内容转储到一个文件并不困难,但我想知道是否已经存在这样的东西 我们正在使用:SQL Server 2008 R2您可以使用SQL

我希望记录SQL Server的“活动监视”面板中显示的数据。Activity Monitor可以很好地概述当前实例中数据库上发生的情况,因此最好能够在几个小时内记录这些数据,以便能够对其进行更详细的分析

我对“最近昂贵的查询”面板的内容很感兴趣。我知道这些数据来自sys.dm_exec_请求和sys.dm_exec_query_stats,所以编写一个小脚本定期将这些内容转储到一个文件并不困难,但我想知道是否已经存在这样的东西


我们正在使用:SQL Server 2008 R2

您可以使用SQL Profiler获取该屏幕中使用的所有查询和存储过程。但是,我用这个:

SELECT TOP 10
    qs.execution_count,
    qs.total_logical_reads, qs.last_logical_reads,
    qs.total_logical_writes, qs.last_logical_writes,
    qs.total_worker_time, 
    qs.last_worker_time,
    qs.total_elapsed_time/1000000 total_elapsed_time_in_S,
    qs.last_elapsed_time/1000000 last_elapsed_time_in_S,
    qs.last_execution_time,
    SUBSTRING(qt.TEXT, (qs.statement_start_offset/2)+1,
    ((CASE qs.statement_end_offset
        WHEN -1 THEN DATALENGTH(qt.TEXT)
        ELSE qs.statement_end_offset
        END - qs.statement_start_offset)/2)+1) Query
FROM sys.dm_exec_query_stats qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) qt
CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle) qp
ORDER BY qs.{What to sort on} DESC