查询作业基本信息和作业执行情况

SELECT
[jop].[job_id] AS '作业唯一标识符'
,[jop].[ name ] AS '作业名称'
,[dp].[ name ] AS '作业创建者'
,[cat].[ name ] AS '作业类别'
,[jop].[description] AS '作业描述'
, CASE [jop].[enabled]
WHEN 1 THEN '是'
WHEN 0 THEN '否'
END AS '是否启用'
,[jop].[date_created] AS '作业创建日期'
,[jop].[date_modified] AS '作业最后修改日期'
,[sv].[ name ] AS '作业运行服务器名称'
,[step].[step_id] AS '作业起始步骤'
,[step].[step_name] AS '步骤名称'
, CASE
WHEN [sch].[schedule_uid] IS NULL THEN '否'
ELSE '是'
END AS '是否分布式作业'
,[sch].[schedule_uid] AS '作业计划的唯一标识符'
,[sch].[ name ] AS '作业计划的用户定义名称'
, CASE [jop].[delete_level]
WHEN 0 THEN '不删除'
WHEN 1 THEN '成功后删除'
WHEN 2 THEN '失败后删除'
WHEN 3 THEN '完成后删除'
END AS '作业完成删除选项'
FROM [msdb].[dbo].[sysjobs] AS [jop]
LEFT JOIN [msdb].[sys].[servers] AS [sv]
ON [jop].[originating_server_id] = [sv].[server_id]
LEFT JOIN [msdb].[dbo].[syscategories] AS [cat]
ON [jop].[category_id] = [cat].[category_id]
LEFT JOIN [msdb].[dbo].[sysjobsteps] AS [step]
ON [jop].[job_id] = [step].[job_id]
AND [jop].[start_step_id] = [step].[step_id]
LEFT JOIN [msdb].[sys].[database_principals] AS [dp]
ON [jop].[owner_sid] = [dp].[sid]
LEFT JOIN [msdb].[dbo].[sysjobschedules] AS [jsch]
ON [jop].[job_id] = [jsch].[job_id]
LEFT JOIN [msdb].[dbo].[sysschedules] AS [sch]
ON [jsch].[schedule_id] = [sch].[schedule_id]
ORDER BY [jop].[ name ]

作业最后执行情况

SELECT
[job].[job_id] AS '作业唯一标示符'
,[job].[ name ] AS '作业名称'
, CASE WHEN [jobh].[run_date] IS NULL
OR [jobh].[run_time] IS NULL THEN NULL
ELSE CAST ( CAST ([jobh].[run_date] AS CHAR ( 8 )) + ' '
+ STUFF(STUFF( RIGHT ( ''
+ CAST ([jobh].[run_time] AS VARCHAR ( 6 )), 6 ),
3 , 0 , ':' ), 6 , 0 , ':' ) AS DATETIME)
END AS '最后执行时间'
, CASE [jobh].[run_status]
WHEN 0 THEN '失败'
WHEN 1 THEN '成功'
WHEN 2 THEN '重试'
WHEN 3 THEN '取消'
WHEN 4 THEN '正在运行'
END AS '最后执行状态'
,STUFF(STUFF( RIGHT ( '' + CAST ([jobh].[run_duration] AS VARCHAR ( 6 )), 6 ),
3 , 0 , ':' ), 6 , 0 , ':' ) AS '最后运行持续时间'
,[jobh].[message] AS '最后运行状态信息'
, CASE [jsch].[NextRunDate]
WHEN 0 THEN NULL
ELSE CAST ( CAST ([jsch].[NextRunDate] AS CHAR ( 8 )) + ' '
+ STUFF(STUFF( RIGHT ( ''
+ CAST ([jsch].[NextRunTime] AS VARCHAR ( 6 )),
6 ), 3 , 0 , ':' ), 6 , 0 , ':' ) AS DATETIME)
END AS '下次运行时间'
FROM [msdb].[dbo].[sysjobs] AS [job]
LEFT JOIN (
SELECT
[job_id]
, MIN ([next_run_date]) AS [NextRunDate]
, MIN ([next_run_time]) AS [NextRunTime]
FROM [msdb].[dbo].[sysjobschedules]
GROUP BY [job_id]
) AS [jsch]
ON [job].[job_id] = [jsch].[job_id]
LEFT JOIN (
SELECT
[job_id]
,[run_date]
,[run_time]
,[run_status]
,[run_duration]
,[message]
,ROW_NUMBER() OVER ( PARTITION BY [job_id] ORDER BY [run_date] DESC , [run_time] DESC ) AS RowNumber
FROM [msdb].[dbo].[sysjobhistory]
WHERE [step_id] = 0
) AS [jobh]
ON [job].[job_id] = [jobh].[job_id]
AND [jobh].[RowNumber] = 1
ORDER BY [job].[ name ]

查看每个作业步骤基本信息

SELECT
[job].[job_id] AS '作业唯一标识符'
,[job].[name] AS '作业名称'
,[jstep].[step_uid] AS '步骤唯一标识符'
,[jstep].[step_id] AS '步骤编号'
,[jstep].[step_name] AS '步骤名称'
,CASE [jstep].[subsystem]
WHEN 'ActiveScripting' THEN 'ActiveX Script'
WHEN 'CmdExec' THEN 'Operating system (CmdExec)'
WHEN 'PowerShell' THEN 'PowerShell'
WHEN 'Distribution' THEN 'Replication Distributor'
WHEN 'Merge' THEN 'Replication Merge'
WHEN 'QueueReader' THEN 'Replication Queue Reader'
WHEN 'Snapshot' THEN 'Replication Snapshot'
WHEN 'LogReader' THEN 'Replication Transaction-Log Reader'
WHEN 'ANALYSISCOMMAND' THEN 'SQL Server Analysis Services Command'
WHEN 'ANALYSISQUERY' THEN 'SQL Server Analysis Services Query'
WHEN 'SSIS' THEN 'SQL Server Integration Services Package'
WHEN 'TSQL' THEN 'Transact-SQL script (T-SQL)'
ELSE [jstep].[subsystem]
END AS '作业步骤类型'
,CASE
WHEN [px].[name] IS NULL THEN 'SQL SERVER代理服务账户'
ELSE [px].[name]
END AS '步骤运行账户'
,[jstep].[database_name] AS '执行数据库名'
,[jstep].[command] AS '执行命令'
,CASE [jstep].[on_success_action]
WHEN 1 THEN '退出报表成功的作业'
WHEN 2 THEN '退出报告失败的作业'
WHEN 3 THEN '转到下一步'
WHEN 4
THEN '转到步骤: '
+ QUOTENAME(CAST([jstep].[on_success_step_id] AS VARCHAR(3))) + ' '
+ [sOSSTP].[step_name]
END AS '执行成功后操作'
,[jstep].[retry_attempts] AS '失败时的重试次数'
,[jstep].[retry_interval] AS '重试间的等待时间(分钟)'
,CASE [jstep].[on_fail_action]
WHEN 1 THEN '退出报告成功的作业'
WHEN 2 THEN '退出报告失败的作业'
WHEN 3 THEN '转到下一步'
WHEN 4
THEN '转到步骤: '
+ QUOTENAME(CAST([jstep].[on_fail_step_id] AS VARCHAR(3))) + ' '
+ [sOFSTP].[step_name]
END AS '执行失败后操作'
FROM [msdb].[dbo].[sysjobsteps] AS [jstep]
INNER JOIN [msdb].[dbo].[sysjobs] AS [job]
ON [jstep].[job_id] = [job].[job_id]
LEFT JOIN [msdb].[dbo].[sysjobsteps] AS [sOSSTP]
ON [jstep].[job_id] = [sOSSTP].[job_id]
AND [jstep].[on_success_step_id] = [sOSSTP].[step_id]
LEFT JOIN [msdb].[dbo].[sysjobsteps] AS [sOFSTP]
ON [jstep].[job_id] = [sOFSTP].[job_id]
AND [jstep].[on_fail_step_id] = [sOFSTP].[step_id]
LEFT JOIN [msdb].[dbo].[sysproxies] AS [px]--代理账户信息
ON [jstep].[proxy_id] = [px].[proxy_id]
ORDER BY [job].[name], [jstep].[step_id]

查看每个作业步骤执行情况

SELECT
[job].[job_id] AS '作业唯一标识符'
,[job].[name] AS '作业名称'
,[jstep].[step_uid] AS '作业步骤唯一标识符'
,[jstep].[step_id] AS '步骤编号'
,[jstep].[step_name] AS '步骤名称'
,CASE [jstep].[last_run_outcome]
WHEN 0 THEN '失败'
WHEN 1 THEN '成功'
WHEN 2 THEN '重试'
WHEN 3 THEN '取消'
WHEN 5 THEN '未知'
END AS '上次运行状态'
,STUFF(STUFF(RIGHT(''
+ CAST([jstep].[last_run_duration] AS VARCHAR(6)), 6), 3,
0, ':'), 6, 0, ':') AS [LastRunDuration (HH:MM:SS)]
,[jstep].[last_run_retries] AS '上次运行重复执行次数'
,CASE [jstep].[last_run_date]
WHEN 0 THEN NULL
ELSE CAST(CAST([jstep].[last_run_date] AS CHAR(8)) + ' '
+ STUFF(STUFF(RIGHT(''
+ CAST([jstep].[last_run_time] AS VARCHAR(6)),
6), 3, 0, ':'), 6, 0, ':') AS DATETIME)
END AS '上次运行时间'
FROM [msdb].[dbo].[sysjobsteps] AS [jstep]
INNER JOIN [msdb].[dbo].[sysjobs] AS [job]
ON [jstep].[job_id] = [job].[job_id]
ORDER BY [job].[name], [jstep].[step_id]

【原创】SQL SERVER 查询Job作业基本信息及执行情况的更多相关文章

  1. SQL SERVER 查询Job作业基本信息及执行情况

    查询作业基本信息和作业执行情况 SELECT [jop].[job_id] AS '作业唯一标识符' ,[jop].[ name ] AS '作业名称' ,[dp].[ name ] AS '作业创建 ...

  2. SQL Server 批量创建作业(备份主分区)

    一. 需求背景 在我的数据库实例中,有很多类似下图所示的数据库,这些数据库的名称是有规律的,每个数据库包含的表都是相同的,其中2个表是类似流水记录的表,表的数据量会比较大,占用的空间有几十G到上百G不 ...

  3. sql server 维护计划与作业关系区别

    sql server 维护计划与作业关系区别 对于二者的区别,你可以把维护计划看作是针对数据库进行维护的作业模板.自定义作业具有更广泛的用途,当然,也具有更复杂的操作.所以,如果 仅仅是做个数据库优化 ...

  4. [转] 利用SET STATISTICS IO和SET STATISTICS TIME 优化SQL Server查询性能

    首先需要说明的是这篇文章的内容并不是如何调节SQL Server查询性能的(有关这方面的内容能写一本书),而是如何在SQL Server查询性能的调节中利用SET STATISTICS IO和SET ...

  5. SQL SERVER 查询性能优化——分析事务与锁(五)

    SQL SERVER 查询性能优化——分析事务与锁(一) SQL SERVER 查询性能优化——分析事务与锁(二) SQL SERVER 查询性能优化——分析事务与锁(三) 上接SQL SERVER ...

  6. SQL Server 查询性能优化 相关文章

    来自: SQL Server 查询性能优化——堆表.碎片与索引(一) SQL Server 查询性能优化——堆表.碎片与索引(二) SQL Server 查询性能优化——覆盖索引(一) SQL Ser ...

  7. 如何修改 SQL Server 代理主作业 (Transact-SQL)

    本主题介绍了如何使用存储过程修改 Microsoft SQL Server 代理主作业. 更改作业定义计划的详细信息 1.       执行 sp_update_schedule. 在作业中添加.更改 ...

  8. 利用SET STATISTICS IO和SET STATISTICS TIME 优化SQL Server查询性能

    首先需要说明的是这篇文章的内容并不是如何调节SQL Server查询性能的(有关这方面的内容能写一本书),而是如何在SQL Server查询性能的调节中利用SET STATISTICS IO和SET ...

  9. 如何找出你性能最差的SQL Server查询

    我经常会被反复问到这样的问题:”我有一个性能很差的SQL Server.我如何找出最差性能的查询?“.因此在今天的文章里会给你一些让你很容易找到问题答案的信息向导. 问SQL Server! SQL ...

随机推荐

  1. python网络-多任务实现之协程(27)

    一.协程 协程,又称微线程,纤程.英文名Coroutine. 协程不是进程,也不是线程,它就是一个函数,一个特殊的函数——可以在某个地方挂起,并且可以重新在挂起处继续运行.所以说,协程与进程.线程相比 ...

  2. V4L2学习(三)框架分析

    整个v4l2的框架分为三层: 在应用层,我们可以在 /dev 目录发现 video0 类似的设备节点,上层的摄像头程序打开设备节点进行数据捕获,显示视频画面.设备节点的名字很统一,video0 vid ...

  3. Network of Schools POJ - 1236 (强联通)

    一些学校连接到了一个计算机网络.网络中的学校间有如下约定:每个学校维护一个列表,当该学校收到软件或信息后将会转发给列表中的所有学校(也就是接收方列表).需要注意的是如果B学校在A学校的接收方列表中,A ...

  4. Codeforces 678F Lena and Queries

    题意: 你有一个点集,有三种操作: 往集合里插入一个点\((x, y)\) 从集合中删除第\(i\)次操作插入的点 对于给出的\(q\),询问点集中\(x \cdot q + y\)的最大值 分析: ...

  5. 创建数据收集器集(DSC)

    TechNet 库 Windows Server Windows Server 2008 R2 und Windows Server 2008 按类别提供的 Windows Server 内容 按类别 ...

  6. Leetcode 553.最优除法

    最优除法 给定一组正整数,相邻的整数之间将会进行浮点除法操作.例如, [2,3,4] -> 2 / 3 / 4 . 但是,你可以在任意位置添加任意数目的括号,来改变算数的优先级.你需要找出怎么添 ...

  7. File IO(NIO.2):路径类 和 路径操作

    路径类 Java SE 7版本中引入的Path类是java.nio.file包的主要入口点之一.如果您的应用程序使用文件I / O,您将需要了解此类的强大功能. 版本注意:如果您有使用java.io. ...

  8. poj2002 hash+邻接表优化Squares

    Squares Time Limit: 3500MS   Memory Limit: 65536K Total Submissions: 17487   Accepted: 6643 Descript ...

  9. poj2488 A Knight's Journey裸dfs

    A Knight's Journey Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 35868   Accepted: 12 ...

  10. 给出 中序&后序 序列 建树;给出 先序&中序 序列 建树

    已知 中序&后序  建立二叉树: SDUT 1489 Description  已知一棵二叉树的中序遍历和后序遍历,求二叉树的先序遍历 Input  输入数据有多组,第一行是一个整数t (t& ...