我最近发现了有关SQL Server 2008中的事件监视器的信息(我知道,对吧?)。 “最近的昂贵查询”标签对我有很大帮助。

现在,我正在尝试在一个客户端中调试数据库的过度使用,但是服务器上有SQL Server2005。那里有事件监视器,但没有“最近的昂贵查询”!

只有三个选项卡:“进程信息”,“按进程锁定”和“按对象锁定”。第一个变化很大,我无法跟踪性能问题。

谢谢!

最佳答案

您可以使用此 View 查看最近的昂贵查询...我一直都在使用它,它比事件监视器具有更多的详细信息。

注意:这仅适用于缓存的计划。

SELECT TOP 10 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),
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,
qp.query_plan
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.total_logical_reads DESC -- logical reads
--ORDER BY qs.total_logical_writes DESC -- logical writes
ORDER BY qs.total_worker_time DESC -- CPU time

Source

关于sql-server - 有没有办法查看Sql Server 2005中最近的昂贵查询?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24896483/

10-13 09:29