Preskočiť na obsah
Skript

SQL Agent – práve bežiace joby

Joby, ktoré podľa aktuálnej session SQL Agenta práve bežia, s časom štartu, dĺžkou behu a posledným dokončeným krokom.

sql-agent-prave-beziace-joby.sql 22 riadkov · T-SQL
Parametre skriptu doplň a kopíruj hotový skript
/* DeadlockCafe | SQL Agent – práve bežiace joby
   Účel:  Joby, ktoré podľa aktuálnej session SQL Agenta práve bežia, s časom štartu, dĺžkou behu a posledným dokončeným krokom.
   Režim: READ ONLY | SQL Server 2016 – 2022, on-premises
*/
SET NOCOUNT ON;

;WITH latest_session AS
(
 SELECT MAX(session_id) AS session_id FROM msdb.dbo.syssessions
)
SELECT j.name AS job_name, a.start_execution_date,
       DATEDIFF(MINUTE,a.start_execution_date,GETDATE()) AS running_minutes,
       a.last_executed_step_id, a.last_executed_step_date,
       a.job_history_id
FROM msdb.dbo.sysjobactivity AS a
JOIN msdb.dbo.sysjobs AS j ON j.job_id=a.job_id
CROSS JOIN latest_session AS x
WHERE a.session_id=x.session_id
  AND a.start_execution_date IS NOT NULL
  AND a.stop_execution_date IS NULL
ORDER BY a.start_execution_date;
## Kedy použiť

Pri kolízii údržby s prevádzkou, počas výkonnostných testov alebo pri podozrení na zaseknutý job.

## Ako čítať výsledok

`running_minutes` porovnaj s bežnou dĺžkou behu jobu. `last_executed_step_id` je posledný **dokončený** krok, aktuálne beží nasledujúci.

> [!WARNING]
> Po reštarte SQL Agenta vzniká nová session – staršie „bežiace“ záznamy sa ignorujú. Ak údaje nesedia, over Job Activity Monitor a log Agenta.

**Oprávnenia:** Čítanie agent tabuliek v msdb, napr. rola `SQLAgentReaderRole`.  
**Režim:** READ ONLY · **Verzia:** SQL Server 2016 – 2022

## Súvisiace recepty

- [SQL Agent – joby, ktoré naposledy zlyhali](script.php?id=40&s=sql-agent-joby-ktore-naposledy-zlyhali)
- [Priebeh BACKUP / RESTORE / DBCC](script.php?id=21&s=priebeh-backup-restore-dbcc)