今天被问到服务器上制定的作业,运行都需要多长时间 查了查,从工作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 (责任编辑:IT) |