jobs.job_executions (Azure 弹性作业) (Transact-SQL)
适用于:Azure SQL 数据库
包含用于Azure SQL 数据库的 Azure 弹性作业服务中作业的作业执行状态和历史记录。
列名称 | 数据类型 | 说明 |
---|---|---|
job_execution_id | uniqueidentifier | 一个作业执行操作实例的唯一 ID。 |
job_name | nvarchar(128) | 作业的名称。 |
job_id | uniqueidentifier | 作业的唯一 ID。 |
job_version | int | 作业的版本(每次修改作业时都自动对其进行更新)。 |
step_id | int | 步骤的唯一(是针对该作业的)标识符。 NULL 指示此执行是父作业执行。 |
is_active | bit | 指示信息是处于活动状态还是非活动状态。 1 指示活动作业,并 0 指示非活动状态。 |
lifecycle | nvarchar(50) | 指示作业状态的值。 有关可能的值,请参阅 生命周期 表。 |
create_time | datetime2(7) | 作业的创建日期和时间。 |
start_time | datetime2(7) | 作业开始执行的日期和时间。 NULL 如果尚未执行作业,则为 |
end_time | datetime2(7) | 作业执行完毕的日期和时间。 NULL 如果作业尚未执行或尚未完成执行, |
current_attempts | int | 步骤重试的次数。 父作业是 0 ,子作业执行将 1 基于执行策略或更大。 |
current_attempt_start_time | datetime2(7) | 作业开始执行的日期和时间。 NULL 指示此执行是父作业执行。 |
next_attempt_start_time | datetime2(7) | 作业开始下一次执行的日期和时间。 NULL 指示此执行是父作业执行。 |
last_message | nvarchar(max) | 作业或步骤历史记录消息。 |
target_type | nvarchar(128) | 目标数据库或数据库集合的类型,包括服务器中的所有数据库、弹性池或数据库中的所有数据库。 的有效值为target_type SqlServer 、SqlElasticPool 或 SqlDatabase 。 NULL 指示此执行是父作业执行。 |
target_id | uniqueidentifier | 目标组成员的唯一 ID。 NULL 指示此执行是父作业执行。 |
target_group_name | nvarchar(128) | 目标组的名称。 NULL 指示此执行是父作业执行。 |
target_server_name | nvarchar(256) | 包含在目标组中的服务器的名称。 仅当 target_type 为 SqlServer .时指定。 NULL 指示此执行是父作业执行。 |
target_database_name | nvarchar(128) | 包含在目标组中的数据库的名称。 仅当 target_type 为 SqlDatabase . NULL 指示此执行是父作业执行。 |
下表列出了可能的作业执行状态 lifecycle
:
状态 | 说明 |
---|---|
创建时间 | 作业执行刚刚创建,还没有进行。 |
InProgress | 作业执行目前正在进行中。 |
WaitingForRetry | 作业执行无法完成其操作,正在等待重试。 |
成功 | 作业执行成功完成。 |
SucceededWithSkipped | 作业执行已成功完成,但跳过了其中一些子项。 |
已失败 | 作业执行失败并耗尽了重试。 |
TimedOut | 作业执行超时。 |
已取消 | 作业执行已取消。 |
已跳过 | 已跳过作业执行,因为同一作业步骤的另一个执行已在同一目标上运行。 |
WaitingForChildJobExecutions | 作业执行正在等待其子执行完成。 |
权限
jobs_reader角色的成员可以从此视图中选择。 有关详细信息,请参阅 Azure SQL 数据库中的弹性作业。
注意
不得更新“作业数据库”中的内部目录视图。 手动更改上述目录视图可能会损坏“作业数据库”并导致失败。 上述视图仅用于只读查询。 可以在作业数据库上使用存储过程。
注解
弹性作业中的所有时间均处于 UTC 时区。
监视作业执行状态
以下示例演示如何查看所有作业的执行状态详细信息。
连接到 job_database
,然后运行以下命令:
--Connect to the job database specified when creating the job agent
--View top-level execution status for the job named 'ResultsPoolJob'
SELECT * FROM jobs.job_executions
WHERE job_name = 'ResultsPoolsJob' and step_id IS NULL
ORDER BY start_time DESC;
--View all top-level execution status for all jobs
SELECT * FROM jobs.job_executions WHERE step_id IS NULL
ORDER BY start_time DESC;
--View all execution statuses for job named 'ResultsPoolsJob'
SELECT * FROM jobs.job_executions
WHERE job_name = 'ResultsPoolsJob'
ORDER BY start_time DESC;
-- View all active executions
SELECT * FROM jobs.job_executions
WHERE is_active = 1
ORDER BY start_time DESC;
运行作业并监视状态
以下示例演示如何立即以手动计划外操作的形式启动弹性作业。
连接到 job_database
,然后运行以下命令:
--Connect to the job database specified when creating the job agent
-- Execute the latest version of a job and receive the execution id
DECLARE @je uniqueidentifier;
EXEC jobs.sp_start_job 'CreateTableTest', @job_execution_id = @je output;
SELECT @je;
-- Monitor progress
SELECT * FROM jobs.job_executions WHERE job_execution_id = @je;