SQL Server:如果查询被取消,从哪里获取数据?

Jea*_*ean 5 sql-server dmv

假设我正在使用 跟踪查询sys.dm_exec_query_stats,如果查询顺利结束,那么我们可以在 中找到相关统计信息sys.dm_exec_query_stats。但是,如果取消查询,则该查询的统计信息(即在被用户取消之前执行了多长时间、其 I/O 使用情况等)在sys.dm_exec_query_stats.

还有其他地方可以获取此信息吗?

Aar*_*and 4

您必须相当频繁地轮询 sys.dm_exec_requests,或者使用跟踪/扩展事件来定位以中止结束的查询。声明一下,我在 SQL Sentry 工作,Performance Advisor(除其他外)还可以为您跟踪所有中止的查询,只要它们超过 Top SQL 阈值(默认情况下为 5 秒,但这是可配置的)。其他监控工具可能会做类似的事情。