Skip to content

Commit f739fbb

Browse files
committed
Add Jobs Script
1 parent 00fd312 commit f739fbb

File tree

3 files changed

+128
-0
lines changed

3 files changed

+128
-0
lines changed

Jobs/JobHistoryStatistics.sql

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
/*#info
2+
3+
# Autor
4+
Rodrigo Ribeiro Gomes
5+
6+
# Descrição
7+
Obtém a quantidade de histórico (em linhas) por job!
8+
Já usei para achar qual job estava mais ocupando espaço nos logs
9+
10+
*/
11+
SELECT
12+
JH.name
13+
,JHS.*
14+
FROM
15+
(
16+
SELECT
17+
job_id
18+
,LogCount = count(*)
19+
FROM
20+
msdb..sysjobhistory
21+
GROUP BY
22+
job_id
23+
) JHS
24+
INNER JOIN
25+
msdb..sysjobs JH
26+
ON JH.job_id = JHS.job_id
27+
ORDER BY
28+
LogCount desc

Jobs/JobsXProxy.sql

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
/*#info
2+
3+
# Autor
4+
Rodrigo Ribeiro Gomes
5+
6+
# Descrição
7+
Traz a lista de proxies usados em cada job!
8+
Proxy é uma conta do Windows sob o qual o job vai rodar!
9+
10+
*/
11+
12+
13+
--> Quais jobs usam quais proxies?
14+
select J.name,JS.step_name,JS.subsystem,JS.proxy_id,P.name,C.name,C.credential_identity
15+
from msdb..sysjobs J
16+
JOIN msdb..sysjobsteps JS
17+
ON JS.job_id = JS.job_id
18+
JOIN msdb..sysproxies P
19+
ON P.proxy_id = JS.proxy_id
20+
JOIN sys.credentials C
21+
ON C.credential_id = P.credential_id
22+
23+
-- Se a linha anterior não retornar nada, então não precisa verificar mais nada.
24+
25+
26+
-- Verificar proxies
27+
select * From msdb..sysproxies
28+
29+
-- Lista das credentials
30+
select * from sys.credentials
31+
32+
-- Verificar proxies criados em quais subsystems
33+
select * from msdb..sysproxysubsystem
34+
35+
-- Verificar quais logins tem permissoa no proxie
36+
select * from msdb..sysproxies
37+

Jobs/obter_ultimas_falhas.sql

+63
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
/*#info
2+
3+
# Autor
4+
Rodrigo Ribeiro Gomes
5+
6+
# Descrição
7+
Obtém informacoes dos jobs, cujo última execução foi falha.
8+
ATENÇÃO: Esse script pode demorar um pouco e dependendo da quantidade de histórico, pode causar alguma pressão no seu ambiente.
9+
Acredito que tenha um espaço para otimizações e não me lembro exatamente o porquê fiz usando row_number com partition.
10+
11+
*/
12+
SELECT
13+
CONVERT(varchar(150),J.name) as NomeJOB
14+
,CONVERT(varchar(150),j.step_name) as NomeSTEP
15+
,CONVERT(datetime,j.DataStart) as DataStart
16+
,CONVERT(varchar(8),J.Duracao) as Duracao
17+
,CONVERT(varchar(500),STUFF(S.agendamentos,1,3,'')) as Agendamentos
18+
,CONVERT(int,J.run_status) as run_status
19+
FROM
20+
(
21+
SELECT
22+
*
23+
,ROW_NUMBER() OVER(PARTITION BY J.name ORDER BY J.DataStart DESC) Rn
24+
FROM
25+
(
26+
SELECT
27+
J.name
28+
,J.job_id
29+
,JH.step_name
30+
,CONVERT(DATETIME, CONVERT(CHAR(8), run_date, 112) + ' '
31+
+ STUFF(STUFF(RIGHT('000000' + CONVERT(VARCHAR(8), run_time), 6), 5, 0, ':'), 3, 0, ':'), 121 ) DataStart
32+
,STUFF(STUFF(RIGHT('000000'+CONVERT(varchar(8),JH.run_duration),6),3,0,':'),6,0,':') as Duracao
33+
,JH.message
34+
,JH.run_status
35+
FROM
36+
msdb.dbo.sysjobhistory JH
37+
INNER JOIN
38+
msdb.dbo.sysjobs J
39+
ON J.job_id = JH.job_id
40+
WHERE
41+
JH.step_id <> 0
42+
) J
43+
) J
44+
OUTER APPLY (
45+
46+
SELECT
47+
' | '+S.name as 'data()'
48+
FROM
49+
msDb.dbo.sysjobschedules JS
50+
JOIN
51+
msdb.dbo.sysschedules S
52+
ON S.schedule_id = JS.schedule_id
53+
WHERE
54+
JS.job_id = J.job_id
55+
FOR XML PATH('')
56+
) S(agendamentos)
57+
58+
WHERE
59+
J.Rn = 1
60+
AND
61+
J.run_status = 0
62+
ORDER BY
63+
DataStart DESC

0 commit comments

Comments
 (0)