微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何加入 DMV 以获取数据以查找在 SQL Server 中特定 CPU id 上运行的查询

如何解决如何加入 DMV 以获取数据以查找在 SQL Server 中特定 CPU id 上运行的查询

here(脚本 1)我正在使用显示的脚本来查找并行 AG 线程的 spid

select 
    db_name(database_id) as dbname,command,session_id 
from
    sys.dm_exec_requests 
where 
    command in ('ParaLLEL REDO HELP TASK','ParaLLEL REDO TASK','DB STARTUP') 
    and database_id = db_id('AdventureWorks2016')

我们正在尝试解决重做队列问题,因此如果在相同的 cpu id 上运行,则需要查找用户查询 spid

我发现以下来自 here查询(脚本 2)提供了用于运行查询cpu id

SELECT
    s.cpu_id,s.status,db_name(r.database_id) as [databaseName],w.last_wait_type,w.return_code,t.task_state,t.pending_io_count,t.session_id,r.sql_handle,te.text
FROM  sys.dm_os_Schedulers s 
JOIN sys.dm_os_workers w 
    ON w.scheduler_address = s.scheduler_address
JOIN sys.dm_os_tasks t 
    ON t.task_address = w.task_address
JOIN sys.dm_exec_requests r 
    ON r.scheduler_id = s.scheduler_id
CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) te   
order by 1,3

我如何将以上 2 个查询作为单个脚本加入,以告诉我来自脚本 2 的用户查询是否实际上在与脚本 1 中的 spid 相同的 cpu id 上运行,或者可能按 cpu id 分组数据以显示在这查询上运行的查询处理器编号。不知何故,脚本 2 显示了对同一 cpu id 上的多个 spid 的相同查询

谢谢

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。