基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
UTL_RECOMP 概述
更新时间:2026-07-15 20:42:46
UTL_RECOMP 系统包是一个用于重新编译数据库对象的实用程序包,与数据库升级或对象失效有关时特别有用。该包中的程序可以用于重新编译整个数据库的对象或特定模式(schema)的对象。
功能适用性
该内容仅适用于 OceanBase 数据库企业版。OceanBase 数据库社区版仅提供 MySQL 模式。
UTL_RECOMP 使用说明
- 对于 OceanBase 数据库 V4.3.5 BP2 之前的版本该包必须连接 SYS 用户才能使用,其他用户没有权限调用此包。V4.3.5 BP2 及之后版本通过 sys 用户给普通用户授予
EXECUTE权限后普通用户也可以调用UTL_RECOMP系统包。 - 调用
recomp_parallel,recomp_serial时,建议用户保证系统中没有正在执行的 DDL 操作,否则可能会有非预期情况发生。 - 此包编译的对象包括
procedure、functon、package、trigger、user define type。 - 对象编译过程出现的单个对象相关的错误,可以通过
all_errors视图查看。 - 编译过程中出现的系统错误记录在
SYS.UTL_RECOMP_ERRORS表中。
UTL_RECOMP 子程序概览
下表列出了 OceanBase 数据库当前版本所支持的 UTL_RECOMP 子程序以及简要描述。
| 子程序 | 描述 |
|---|---|
| recomp_parallel | 用于并行地重新编译失效的数据程序单位(例如,包、过程、函数、触发器等)。 |
| recomp_serial | 用于串行编译数据库对象。 |
| parallel_slave | 这个是 recomp_parallel 过程中用于执行实际编译工作的私有子程序。通常情况下不会由用户直接调用。 |
| truncate_utl_recomp_skip_list | 用于清空 UTL_RECOMP_SKIP_LIST 表,该表中存储了不想被自动重编译的对象名单。 |
| populate_utl_recomp_skip_list | 用于向 UTL_RECOMP_SKIP_LIST 表中添加记录,以便在重编译过程中跳过特定的对象。 |