dwj*_*wjv 4 sql-server parallelism wait-types
如果我有一些像这样的 T-SQL 代码:
While @done<1
Begin
WAITFOR DELAY '00:00:30';
Set @done=<some select statement>
End
Run Code Online (Sandbox Code Playgroud)
这可能会增加等待CXPACKET吗?据推测,其他处理器将在WAITFOR运行时等待?
当你发出一个WAITFOR命令,任务将开始具有wait_type的WAITFOR。这是一种良性等待类型,可以忽略。
同样,当此任务进入挂起状态时,它将脱离调度程序(处理器),因此不会占用工作人员时间。我们可以通过一个简单的例子看到这一点:
use AdventureWorks2012;
go
waitfor delay '00:10:00';
go
Run Code Online (Sandbox Code Playgroud)
在另一个窗口中,您可以运行以下命令:
select
session_id,
command,
status,
wait_type
from sys.dm_exec_requests
where command = 'waitfor';
Run Code Online (Sandbox Code Playgroud)
我的结果如下:
session_id command status wait_type
54 WAITFOR suspended WAITFOR
Run Code Online (Sandbox Code Playgroud)
至于你这是如何将反映的问题sys.dm_os_wait_stats中,在WAITFOR等待类型的完成,它就会递增WAITFOR型在sys.dm_os_wait_stats该任务在等待时间:
select *
from sys.dm_os_wait_stats
where wait_type = 'waitfor';
Run Code Online (Sandbox Code Playgroud)
但如前所述,WAITFOR等待类型是良性的,通常可以忽略。
| 归档时间: |
|
| 查看次数: |
648 次 |
| 最近记录: |