查询似乎挂断

查询似乎挂断

我们有一个 ETL 工作,有时会陷入困境。

在这种情况下,我查看了 sp_who2,发现没有阻塞,而且它是系统上唯一的活动查询。

以下是来自 sysprocesses 的转储:

spid    kpid    blocked waittype    waittime    lastwaittype    waitresource    dbid    uid cpu physical_io memusage    login_time  last_batch  ecid    open_tran   status  cmd
61  6276    0   0x00BB  3659611 CXPACKET                                                                                                                                                                                                                                                                                                5   9   184826204   114737  2   35:53.8 35:53.8 0   2   suspended                       INSERT          
61  6540    0   0x0000  0   SOS_SCHEDULER_YIELD                                                                                                                                                                                                                                                                                     5   9   3503094 513 0   35:53.8 35:53.8 2   0   runnable                        INSERT          
61  360 0   0x0000  0   SOS_SCHEDULER_YIELD                                                                                                                                                                                                                                                                                     5   9   3377297 420 0   35:53.8 35:53.8 4   0   runnable                        INSERT          
61  4348    0   0x0000  0   SOS_SCHEDULER_YIELD                                                                                                                                                                                                                                                                                     5   9   3446657 515 0   35:53.8 35:53.8 3   0   runnable                        INSERT          
61  5532    0   0x0000  0   SOS_SCHEDULER_YIELD                                                                                                                                                                                                                                                                                     5   9   3094360 443 0   35:53.8 35:53.8 5   0   runnable                        INSERT          

我怀疑查询正在并行进行并阻止自身,因为所有活动都发生在同一个 spid 上。但我不知道如何进一步排除故障。

对这里发生的事情有什么想法吗?或者如果再次发生这种情况我可以采取哪些其他步骤来解决问题?

答案1

块类型 00BB 为 CXPACKET,这意味着数据库正在等待另一个线程完成。其他 4 个线程正在运行,因为它们没有显示等待类型。最后一个等待类型显示的 SOS_SCHEDULER_YIELD 意味着 SQL Server 正在取消调度线程,因为它还有其他更容易完成的事情要做,所以它首先处理这些事情。

您需要调整查询,因为您可能遇到某种需要解决的索引问题。

相关内容