如果我有这样的 T-SQL 代码:
While @done<1
Begin
WAITFOR DELAY '00:00:30';
Set @done=<some select statement>
End
这可能会增加等待时间CXPACKET
吗?大概其他处理器会在WAITFOR
运行时等待?
如果我有这样的 T-SQL 代码:
While @done<1
Begin
WAITFOR DELAY '00:00:30';
Set @done=<some select statement>
End
这可能会增加等待时间CXPACKET
吗?大概其他处理器会在WAITFOR
运行时等待?
当您发出命令时,
WAITFOR
任务将开始有一个wait_type
。WAITFOR
这是一种良性等待类型,可以忽略。同样,当此任务进入挂起状态时,它将脱离调度程序(处理器),因此不会占用工作人员时间。我们可以通过一个简单的例子看到这一点:
在另一个窗口中,您可以运行以下命令:
我的结果如下:
至于你的问题,这将如何反映在
sys.dm_os_wait_stats
等待WAITFOR
类型完成后,它将在任务等待的持续时间内增加WAITFOR
类型:sys.dm_os_wait_stats
但如前所述,
WAITFOR
等待类型是良性的,通常可以忽略。否。CXPACKET 是由在 SQL Server 实例上运行的并行进程引起的。
更多信息在这里