sql >> Database teknologi >  >> RDS >> Sqlserver

Hvordan kan jeg bestemme status for et job?

Jeg vil gerne påpege, at ingen af ​​T-SQL'erne på denne side vil fungere, netop fordi ingen af ​​dem tilslutter sig syssessionerne tabel for kun at få den aktuelle session og kan derfor inkludere falske positiver.

Se dette som reference:Hvad vil det sige at have job med en null stop-dato?

Du kan også validere dette ved at analysere sp_help_jobactivity procedure i msdb .

Jeg er klar over, at dette er en gammel besked på SO, men jeg fandt denne besked kun delvist nyttig på grund af problemet.

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. Opstart af RAC-database mislykkes med fejl ORA-12547

  2. Importerer sql-fil ved hjælp af phpmyadmin i EasyPHP

  3. Hvordan tæller man alle kombinerede forekomster i SQL?

  4. Postgres - FATAL:databasefiler er inkompatible med serveren