sql server 2008查询作业所花费时间(亲自实践)
2012-07-06 15:45
302 查看
今天被问到服务器上制定的作业,运行都需要多长时间
查了查,从工作log中看不出来,于是上网搜索了一番.
关键涉及到SQL Server中的2个表 msdb.dbo.sysjobsmsdb 和 .dbo.sysjobhistory
参见:http://technet.microsoft.com/zh-cn/library/ms189817(v=sql.90).aspx
sysjobs
存储将由 SQL Server 代理执行的各个预定作业的信息。此表存储在 msdb 数据库中。
列名 数据类型 说明
job_id
uniqueidentifier
作业的唯一 ID。
originating_server_id
int
发出作业的服务器的 ID。
name
sysname
作业的名称。
enabled
tinyint
指示是否启用要执行的作业。
description
nvarchar(512)
对作业的说明。
start_step_id
int
执行作业的起始步骤的 ID。
category_id
int
作业类别的 ID。
owner_sid
varbinary(85)
作业所有者的安全标识号 (SID)。
notify_level_eventlog
int
位掩码,指示在何种情况下应将通知事件记录到 Microsoft Windows 应用程序日志中:
0 = 从不
1 = 作业成功时
2 = 作业失败时
3 = 作业完成时(不考虑作业结果)
notify_level_email
int
位掩码,指示在何种情况下应在作业完成时发送通知电子邮件:
0 = 从不
1 = 作业成功时
2 = 作业失败时
3 = 作业完成时(不考虑作业结果)
notify_level_netsend
int
位掩码,指示在何种情况下应在作业完成时发送网络消息:
0 = 从不
1 = 作业成功时
2 = 作业失败时
3 = 作业完成时(不考虑作业结果)
notify_level_page
int
位掩码,指示在何种情况下应在作业完成时发送寻呼:
0 = 从不
1 = 作业成功时
2 = 作业失败时
3 = 作业完成时(不考虑作业结果)
notify_email_operator_id
int
被通知的操作员的电子邮件名称。
notify_netsend_operator_id
int
发送网络消息时使用的计算机或用户的 ID。
notify_page_operator_id
int
发送寻呼时使用的计算机或用户的 ID。
delete_level
int
位掩码,指示在何种情况下应在作业完成时删除作业:
0 = 从不
1 = 作业成功时
2 = 作业失败时
3 = 作业完成时(不考虑作业结果)
date_created
datetime
作业的创建日期。
date_modified
datetime
上次修改作业的日期。
version_number
int
作业版本。
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
sysjobhistory
包含有关由 SQL Server 代理程序调度作业的执行的信息。该表存储在 msdb 数据库中。
列名数据类型描述instance_idint行的唯一标识符。job_iduniqueidentifier作业 ID。step_idint作业中的步骤 ID。step_namesysname步骤的名称。sql_message_idint如果作业失败,则返回任何 Microsoft® SQL Server™ 错误信息的 ID。sql_severityint任何
SQL Server 错误的严重度。messagenvarchar(1024)SQL Server 错误的文本(若有)。run_statusint作业的执行状态:
0 = 失败
1 = 成功
2 = 重试
3 = 取消
4 = 正在进行
run_dateint作业或步骤开始执行的日期。对于"正在进行"的历史记录,这是写入历史记录的日期/时间。run_timeint作业或步骤完成的时间。run_durationint以 HHMMSS 格式执行作业或步骤所花费的时间。operator_id_emailedint作业完成时通知的操作员 ID。operator_id_netsentint作业完成时用消息通知的操作员
ID。operator_id_pagedint作业完成时用寻呼机通知的操作员 ID。 retries_attemptedint尝试执行作业或步骤的重试次数。servernvarchar(30)执行作业时所在服务器的名称。
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
查询作业执行花费的时间
SELECT top 1 run_duration
FROM sysjobhistory
WHERE job_id = 在sysjobs中确定的job_id
ORDER BY instance_id DESC
查了查,从工作log中看不出来,于是上网搜索了一番.
关键涉及到SQL Server中的2个表 msdb.dbo.sysjobsmsdb 和 .dbo.sysjobhistory
参见:http://technet.microsoft.com/zh-cn/library/ms189817(v=sql.90).aspx
sysjobs
存储将由 SQL Server 代理执行的各个预定作业的信息。此表存储在 msdb 数据库中。
列名 数据类型 说明
job_id
uniqueidentifier
作业的唯一 ID。
originating_server_id
int
发出作业的服务器的 ID。
name
sysname
作业的名称。
enabled
tinyint
指示是否启用要执行的作业。
description
nvarchar(512)
对作业的说明。
start_step_id
int
执行作业的起始步骤的 ID。
category_id
int
作业类别的 ID。
owner_sid
varbinary(85)
作业所有者的安全标识号 (SID)。
notify_level_eventlog
int
位掩码,指示在何种情况下应将通知事件记录到 Microsoft Windows 应用程序日志中:
0 = 从不
1 = 作业成功时
2 = 作业失败时
3 = 作业完成时(不考虑作业结果)
notify_level_email
int
位掩码,指示在何种情况下应在作业完成时发送通知电子邮件:
0 = 从不
1 = 作业成功时
2 = 作业失败时
3 = 作业完成时(不考虑作业结果)
notify_level_netsend
int
位掩码,指示在何种情况下应在作业完成时发送网络消息:
0 = 从不
1 = 作业成功时
2 = 作业失败时
3 = 作业完成时(不考虑作业结果)
notify_level_page
int
位掩码,指示在何种情况下应在作业完成时发送寻呼:
0 = 从不
1 = 作业成功时
2 = 作业失败时
3 = 作业完成时(不考虑作业结果)
notify_email_operator_id
int
被通知的操作员的电子邮件名称。
notify_netsend_operator_id
int
发送网络消息时使用的计算机或用户的 ID。
notify_page_operator_id
int
发送寻呼时使用的计算机或用户的 ID。
delete_level
int
位掩码,指示在何种情况下应在作业完成时删除作业:
0 = 从不
1 = 作业成功时
2 = 作业失败时
3 = 作业完成时(不考虑作业结果)
date_created
datetime
作业的创建日期。
date_modified
datetime
上次修改作业的日期。
version_number
int
作业版本。
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
sysjobhistory
包含有关由 SQL Server 代理程序调度作业的执行的信息。该表存储在 msdb 数据库中。
列名数据类型描述instance_idint行的唯一标识符。job_iduniqueidentifier作业 ID。step_idint作业中的步骤 ID。step_namesysname步骤的名称。sql_message_idint如果作业失败,则返回任何 Microsoft® SQL Server™ 错误信息的 ID。sql_severityint任何
SQL Server 错误的严重度。messagenvarchar(1024)SQL Server 错误的文本(若有)。run_statusint作业的执行状态:
0 = 失败
1 = 成功
2 = 重试
3 = 取消
4 = 正在进行
run_dateint作业或步骤开始执行的日期。对于"正在进行"的历史记录,这是写入历史记录的日期/时间。run_timeint作业或步骤完成的时间。run_durationint以 HHMMSS 格式执行作业或步骤所花费的时间。operator_id_emailedint作业完成时通知的操作员 ID。operator_id_netsentint作业完成时用消息通知的操作员
ID。operator_id_pagedint作业完成时用寻呼机通知的操作员 ID。 retries_attemptedint尝试执行作业或步骤的重试次数。servernvarchar(30)执行作业时所在服务器的名称。
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
查询作业执行花费的时间
SELECT top 1 run_duration
FROM sysjobhistory
WHERE job_id = 在sysjobs中确定的job_id
ORDER BY instance_id DESC
相关文章推荐
- SQL Server 2005和2008定时作业的制定(转载+亲自实践)
- SQL Server 2008 查询服务器Log日志文件(亲自实践)
- SQL Server 查询的内外连接方式(亲自实践)
- SQL Server 2008 事件探查器(SQL SERVER Profiler) (亲自实践)
- SQL Server 删除作业Job (亲自实践)
- SQL SERVER 2008 无法启动T-SQL调试的解决方法(亲自实践)
- SQL Server 2008 取得登录用户密码使用天数(转帖+亲自实践)
- 查询SQL Server 2008运行效率情况(在master数据库下执行)
- Sql Server 中查询存储过程的修改时间
- SQL Server 时间查询整理
- SQL Server 2008和mysql执行查询架构对比图
- Sql server统计查询语句消耗时间
- C#连接上sql server 2008 第一次实践
- 基于Sql Server 2008的分布式数据库的实践(三)
- SQL Server 2008对日期时间类型的改进
- SQL Server 2008中文版关系数据库基础与实践教程pdf
- SQL Server 2005中Query(查询)Date Time(日期时间)
- SQL Server 2008 查询语句格式归纳
- SQL Server 2008 定时执行sql语句作业的制定
- SQL Server 2008 查询表结构信息,主要目的是方便查询字段说明