基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
TRIGGER_ASYNC_TASK
更新时间:2026-08-18 15:31:44
说明
该存储过程从 V4.6.0 BP1 版本开始支持。
TRIGGER_ASYNC_TASK 存储过程可用于按需手动触发指定类型的向量索引后台维护任务,并可精细到具体 tablet 进行操作,适合需要精确控制索引维护时使用。该过程支持多种任务类型,任务下发后,可通过 DBA_OB_VECTOR_INDEX_TASKS 等系统视图实时监控任务执行进度与结果。
语法
PROCEDURE TRIGGER_ASYNC_TASK(
IN DATABASE_NAME VARCHAR(65535),
IN TASK_TYPE VARCHAR(65535),
IN TABLE_NAME VARCHAR(65535),
IN INDEX_NAME VARCHAR(65535),
IN TABLET_ID BIGINT
);
参数说明
| 参数 | 类型 | 描述 |
|---|---|---|
| database_name | VARCHAR | 数据库名。 |
| task_type | VARCHAR | 任务类型,取值见下表。 |
| table_name | VARCHAR | 目标表名。 |
| index_name | VARCHAR | 向量索引名。 |
| tablet_id | BIGINT | 目标 tablet ID,必须属于指定的向量索引。查询方法请参见下文。 |
task_type 取值说明:
| 值 | 说明 |
|---|---|
| INCREMENTAL_INDEX_FREEZE | 触发增量 Segment 冻结(转储)。 |
| INCREMENTAL_INDEX_MERGE | 触发增量 Segment 合并。 |
| FOLLOWER_IN_MEMORY_INDEX_REFRESH | 触发 Follower 内存加载。 |
查询 tablet_id 方法:
- 可通过 DBA_OB_TABLE_LOCATIONS 视图,按数据库名和索引名查询向量索引对应的
TABLET_ID:SELECT DISTINCT TABLET_ID, TABLE_NAME, INDEX_NAME, PARTITION_NAME, SUBPARTITION_NAME FROM oceanbase.DBA_OB_TABLE_LOCATIONS WHERE DATABASE_NAME = 'test' AND INDEX_NAME = 'my_vector_idx'; - 对于已在内存中加载的向量索引,也可通过索引性能视图 V$OB_HNSW_INDEX_INFO、V$OB_SINDI_INDEX_INFO、V$OB_IVF_INDEX_INFO 的
DATA_TABLET_ID字段查询。
全局注意事项
- 执行该存储过程前,需确保对目标表拥有
ALTER权限。 - 手动触发的任务会以最高优先级调度执行,确保及时响应。
- 如传入了不支持的任务类型,系统将返回错误码
1235并中止执行。
示例
手动触发指定 tablet 的增量 Segment 冻结:
CALL DBMS_VECTOR.TRIGGER_ASYNC_TASK('test', 'INCREMENTAL_INDEX_FREEZE', 'my_table', 'my_vector_idx', 200001);
手动触发指定 tablet 的增量 Segment 合并:
CALL DBMS_VECTOR.TRIGGER_ASYNC_TASK('test', 'INCREMENTAL_INDEX_MERGE', 'my_table', 'my_vector_idx', 200001);
手动触发指定 tablet 的 Follower 内存加载:
CALL DBMS_VECTOR.TRIGGER_ASYNC_TASK('test', 'FOLLOWER_IN_MEMORY_INDEX_REFRESH', 'my_table', 'my_vector_idx', 200001);