笔者在系统中配置了每 8 小时自动执行一次向量化的定时任务后,可以通过 Oracle Scheduler 相关视图,查看任务配置、运行状态与执行历史。
01 | 查看已创建的定时任务
下面的 SQL 可查看当前用户下任务是否启用、执行状态、任务动作、重复规则,以及最近和下一次执行时间:
sql
SELECT job_name,
enabled,
state,
job_type,
job_action,
repeat_interval,
last_start_date,
last_run_duration,
next_run_date,
failure_count
FROM user_scheduler_jobs
ORDER BY job_name;
重点关注 enabled、state、last_start_date、next_run_date 和 failure_count,可初步判断任务是否正常调度。
02 | 查看当前正在运行的任务
如果需要确认任务是否仍在执行,可查询:
sql
SELECT job_name,
running_instance,
session_id,
elapsed_time,
slave_os_process_id
FROM user_scheduler_running_jobs;
查询结果为空,表示当前没有正在运行的 Scheduler 任务。
03 | 查看近 7 天执行记录
任务的实际开始时间、运行时长、执行状态与错误信息,可通过执行明细查看:
sql
SELECT job_name,
status,
actual_start_date,
run_duration,
additional_info,
errors
FROM user_scheduler_job_run_details
WHERE actual_start_date >= SYSTIMESTAMP - INTERVAL '7' DAY
ORDER BY actual_start_date DESC;
若只想查看向量化相关任务,可按任务名称过滤:
sql
SELECT job_name,
status,
actual_start_date,
run_duration,
errors
FROM user_scheduler_job_run_details
WHERE UPPER(job_name) LIKE '%VECTOR%'
ORDER BY actual_start_date DESC;
04 | 调整每 8 小时执行的时间点
例如,任务 TK_REFRESH_VECTORS_8H 需要在每天 2 点、10 点、18 点执行,可修改其重复规则:
sql
BEGIN
DBMS_SCHEDULER.SET_ATTRIBUTE(
name => 'TK_REFRESH_VECTORS_8H',
attribute => 'repeat_interval',
value => 'FREQ=DAILY;BYHOUR=2,10,18;BYMINUTE=0;BYSECOND=0'
);
END;
/
通过任务配置、运行中状态和执行历史这三类查询,笔者可以较完整地确认定时向量化任务是否按预期执行。
关注我,和AI一起成长~