我正在运行带有异步复制的 SQL Server 2019 Always ON 可用性组。
我使用了一个名为IDERA SQL Check的免费工具,我发现了SPID 69
哪个程序名称是Replication Distribution Agent
. 它总是在那里,像一只无聊的猫一样盯着我看。
这SPID 69
指向一个镜像的特定数据库,我用这个查询对其进行了调查:
select
s.session_id
,login_name
,login_time
,host_name
,program_name
,status
,cpu_time
,memory_usage
,total_scheduled_time
,total_elapsed_time
,last_request_start_time
,reads
,writes
,logical_reads
from sys.dm_exec_sessions s
inner join sys.dm_exec_connections c
on s.session_id = c.session_id
outer apply sys.dm_exec_sql_text(c.most_recent_sql_handle) st
where s.is_user_process = 1
and s.open_transaction_count > 0;
这给了我这样的回应:
- session_id = 69
- 文本 = 开始翻译
- login_time = 2020-09-08 18:40:57.153
- program_name = 复制分发代理
- 状态 = 睡觉
- cpu_time = 1362772
- memory_usage = 4
- total_scheduled_time = 1689634
- total_elapsed_time = 22354857
- last_request_start_time = 2020-09-28 16:28:39.433
- 读取 = 18607577
- 写入 = 5166597
- 逻辑读取 = 112256365
现在,在互联网上,我发现当你看到Replication Distribution Agent
一切都很好时,那个代理应该会去,应该没有问题。但为什么:
- 文字说
begin tran
,仅此而已? - IDERA SQL Check 将其标记为
connection idling transaction
? - 状态是
sleeping
? - 我担心这
CPU time, reads and writes
基本上是在告诉我这个过程正在用永无止境的 I/O 煎驱动器,对吗?