sql >> Database >  >> RDS >> Sqlserver

Hoe kan ik de status van een baan bepalen?

Ik wil erop wijzen dat geen van de T-SQL's op deze pagina zal werken, juist omdat geen van hen zich aansluit bij de syssessions tabel om alleen de huidige sessie te krijgen en kan daarom valse positieven bevatten.

Zie dit ter referentie:Wat betekent het om banen te hebben met een ongeldige stopdatum?

U kunt dit ook valideren door de sp_help_jobactivity . te analyseren procedure in msdb .

Ik realiseer me dat dit een oud bericht op SO is, maar ik vond dit bericht slechts gedeeltelijk nuttig vanwege het probleem.

SELECT
    job.name, 
    job.job_id, 
    job.originating_server, 
    activity.run_requested_date, 
    DATEDIFF( SECOND, activity.run_requested_date, GETDATE() ) as Elapsed
FROM 
    msdb.dbo.sysjobs_view job
JOIN
    msdb.dbo.sysjobactivity activity
ON 
    job.job_id = activity.job_id
JOIN
    msdb.dbo.syssessions sess
ON
    sess.session_id = activity.session_id
JOIN
(
    SELECT
        MAX( agent_start_date ) AS max_agent_start_date
    FROM
        msdb.dbo.syssessions
) sess_max
ON
    sess.agent_start_date = sess_max.max_agent_start_date
WHERE 
    run_requested_date IS NOT NULL AND stop_execution_date IS NULL


  1. Java - zoek de eerste oorzaak van een uitzondering

  2. Is te veel Left Joins een codegeur?

  3. Een kolom verwijderen uit een tabel in MySQL

  4. Robuuste aanpak voor het programmatisch bouwen van SQL-query's