一些查询对我的 CPU 的影响非常严重。sp_WhoIsActive
报告这sp_OAMethod
就是原因(该sql_text
列指向它)并且它具有PREEMPTIVE_OS_GETPROCADDRESS
等待类型的巨大等待。鉴于这sp_OAMethod
是一个内置存储过程,我该如何调试它?
我使用的是 2019 版本的 SQL Server,15.0.something。
我的职业生涯多种多样,但我从未在SQL Server 错误日志中找到相关信息。什么情况下我应该考虑检查?
如果我想知道现在发生了什么,那么我会使用 Adam Machanic 的sp_whoisactive
。如果我想了解我的服务器最近发生了什么,那么我将使用查询存储。
扩展事件旨在取代 Profiler,但我认为查询存储的组合sp_whoisactive
已经在 2016 或更高版本的任何 SQL Server 上做到了这一点。考虑到这一点,我什么时候会使用扩展事件?
为了获得灵感,我检查了dbatools 附带的扩展事件。我没有留下深刻的印象。它们似乎只对长期监控查询存储不存储的内容有用。例如:某些登录正在执行的操作、锁定、极其特定的 IO 类型、存储过程参数的使用以及已弃用的功能的使用。这些都很好,但坦率地说,我无法想象自己必须在服务器上进行如此外科手术式的调整。有没有我遗漏的常见用法?
monitoring sql-server extended-events query-store sp-whoisactive
sql-server ×4
t-sql ×3
cpu ×1
error-log ×1
errors ×1
monitoring ×1
query-store ×1
raiserror ×1
waits ×1