首批通过分布式安全可靠测评,为关键业务系统打造
GV$OB_MEMORY
更新时间:2026-04-10 11:58:37
说明
该视图名从 V4.0.0 版本开始由 GV$MEMORY 调整为 GV$OB_MEMORY。
功能描述
展示所有租户在所有节点上的内存统计信息。
字段说明
| 字段名称 | 类型 | 是否可以为 NULL | 描述 |
|---|---|---|---|
| TENANT_ID | bigint(20) | NO | 租户 ID |
| SVR_IP | varchar(46) | NO | 服务器的 IP 地址 |
| SVR_PORT | bigint(20) | NO | 服务器端口号 |
| CTX_NAME | varchar(256) | NO | 内存所属 CTX 名称 |
| MOD_NAME | varchar(256) | NO | 内存所属 Mod 名称 |
| COUNT | decimal(20,0) | NO | 内存分配与释放的差值,即当前该 Mod 使用中的内存单元个数 |
| HOLD | decimal(20,0) | NO | 该 Mod 当前占有的内存大小 |
| USED | decimal(20,0) | NO | 该 Mod 当前使用的内存数值,单位:Byte |
CTX_NAME 字段取值
常见内存 CTX 的名称和含义如下:
| CTX_NAME | 描述 |
|---|---|
| DEFAULT_CTX_ID | 表示未划分的内存集合上下文 ID |
| MEMSTORE_CTX_ID | 表示用户 MemTable 数据上下文 ID |
| TRANS_CTX_MGR_ID | 表示事务上下文 ID |
| PLAN_CACHE_CTX_ID | 表示执行计划缓存上下文 ID |
| GLIBC | 表示使用 Glibc Malloc 接口申请的内存 |
| CO_STACK | 表示线程执行栈内存 |
| KVSTORE_CACHE_ID | 表示动态可伸缩缓存 ID |
| META_OBJ_CTX_ID | 表示存储元数据内存,如宏块 Meta 等 |
| TX_CALLBACK_CTX_ID | 表示事务回调上下文 ID。用于记录事务执行过程中的部分修改,在事务提交或者回滚时可以找到对应数据做操作 |
| LOB_CTX_ID | 表示标记 ObLobManager 中的 Allocator ID |
| PS_CACHE_CTX_ID | 表示 PREPARE stmt_name FROM preparable_stmt 语句的缓存 ID |
| TX_DATA_TABLE | 表示事务数据表。存放了已决事务的状态,用于转储未提交、FAST COMMIT 等场景的查询 |
| MDS_DATA_ID | 表示多源数据的内存 ID |
| LIBEASY | 表示网络框架内存(EASY) |
| LOGGER_CTX_ID | 表示程序日志内存上下文 ID |
| RPC_CTX_ID | 表示 RPC 框架内存上下文 ID |
| PKT_NIO | 表示网络框架内存(pkt_nio) |
| SCHEMA_SERVICE | 表示 Schema 元信息内存,如表、库等 |
CTX_NAME 与 MOD_NAME 的对应关系
常见 CTX_NAME 和 MOD_NAME 的对应关系如下:
| CTX_NAME | MOD_NAME | TENANT |
|---|---|---|
| DEFAULT_CTX_ID |
|
ALL |
|
500 | |
| SQL_EXEC_CTX_ID |
|
ALL |
| WORK_AREA |
|
|
| PLAN_CACHE_CTX_ID |
|
|
| TRANS_CTX_MGR_ID |
|
|
| TX_CALLBACK_CTX_ID | MemtableCallbac:内存表回调相关的模块 | |
| REPLAY_STATUS_CTX_ID | ReplayStatus:重放状态相关的模块 | |
| CO_STACK | CO_STACK:协程栈相关模块 | 500 |
| STORAGE_LONG_TERM_META_CTX_ID |
|
|
| STORAGE_SHORT_TERM_META_CTX_ID |
|
|
| ALL | OB_COMMON_ARRAY:OceanBase 通用数组 | ALL |
常见 SQL 操作对内存 CTX 的影响
在 OceanBase 数据库中,每个 SQL 执行或操作都会对应特定的 CTX。由于数据量的大小、操作的复杂度等不同,所使用的内存 CTX 可能导致内存使用量的增长。 以下是一些常见的 SQL 执行或操作,可能会导致某些内存 CTX 的使用量增长:
大数据量的排序(ORDER BY、GROUP BY 等):排序操作需要将数据加载到内存中进行排序,可能会导致 PLAN_CACHE_CTX_ID、MEMSTORE_CTX_ID、DEFAULT_CTX_ID 中的内存增长。
大数据量的聚合(SUM、AVG、MAX、MIN 等):聚合操作需要将数据加载到内存中进行计算,可能会导致 PLAN_CACHE_CTX_ID、MEMSTORE_CTX_ID、DEFAULT_CTX_ID 中的内存增长。
大数据量的连接(JOIN):连接操作需要将数据加载到内存中进行匹配,可能会导致 PLAN_CACHE_CTX_ID、MEMSTORE_CTX_ID、DEFAULT_CTX_ID 中的内存增长。
大数据量的查询(SELECT):查询操作需要将数据加载到内存中进行过滤和排序,可能会导致 PLAN_CACHE_CTX_ID、MEMSTORE_CTX_ID、DEFAULT_CTX_ID 中的内存增长。
大数据量的写入(INSERT、UPDATE、DELETE 等):写入操作需要对事务进行管理和处理,可能会导致 TRANS_CTX_MGR_ID、MEMSTORE_CTX_ID、DEFAULT_CTX_ID 中的内存增长。
大数据量的日志(REDO、UNDO、BINLOG 等):日志操作需要将数据加载到内存中进行操作,可能会导致 TRANS_CTX_MGR_ID、DEFAULT_CTX_ID、LOB_CTX_ID、TX_DATA_TABLE 中的内存增长。