6

次の SQL を使用して、停止日なしですべてのジョブを一覧表示しました。これを使えば、すべてのアクティブなジョブを見つけることができると思いました。私が気付いたのは、このテーブルに stop_execution_date が null のジョブが多数あることです。このテーブルでは、いくつかの同一のジョブ (同じ job_id) が複数回繰り返されています。

select job.*, activity.*
from msdb.dbo.sysjobs_view job
inner join msdb.dbo.sysjobactivity activity
on (job.job_id = activity.job_id)
where run_Requested_date is not null and stop_execution_date is null

EXEC msdb.dbo.sp_help_jobこれらのジョブを実行すると、現在の実行ステータスがアイドルであることがわかります。

これらの仕事は何を表していますか? これは、ジョブが適切に強制終了されない場合の動作ですか?

4

1 に答える 1

6

SQL エージェントが起動するたびに、新しい行が syssessions に配置され、その後実行されるすべてのジョブが sysjobactivity でその session_id を取得します。停止日が null のジョブについては、エージェントが停止したときにまだ実行されていたことを意味する「現在の」セッション用ではないことが推測されます。

于 2012-10-23T20:30:14.587 に答える