Note
- This view was renamed from
GV$MEMORYtoGV$OB_MEMORYstarting from V4.0.0. In V4.0.0 and later, you must use the new view nameGV$OB_MEMORYto query this view. Using the old view nameGV$MEMORYwill result in an error. - This view is currently only supported in MySQL mode. In Oracle mode, the query result will be empty.
Purpose
This view displays the memory statistics of the current tenant on all nodes.
Columns
| Column | Type | Nullable | Description |
|---|---|---|---|
| CON_ID | NUMBER(38) | NO | The tenant ID. |
| SVR_IP | VARCHAR2(46) | NO | The IP address of the server. |
| SVR_PORT | NUMBER(38) | NO | The port number of the server. |
| CTX_NAME | VARCHAR2(256) | NO | The name of the CTX to which the memory belongs. |
| MOD_NAME | VARCHAR2(256) | NO | The name of the Mod to which the memory belongs. |
| COUNT | NUMBER | NO | The difference between the number of memory units allocated and freed. This value indicates the number of memory units currently used by the mod. |
| HOLD | NUMBER | NO | The size of memory currently occupied by the mod. |
| USED | NUMBER | NO | The size of memory currently used by the mod, in bytes. |
CTX_NAME values
The following table describes the common memory CTXs and their meanings.
| CTX_NAME | Description |
|---|---|
| DEFAULT_CTX_ID | The ID of the context of unallocated memory. |
| MEMSTORE_CTX_ID | The ID of the context of user MemTable data. |
| TRANS_CTX_MGR_ID | The ID of the transaction context. |
| PLAN_CACHE_CTX_ID | The ID of the execution plan cache context. |
| GLIBC | The memory allocated by using the Glibc Malloc interface. |
| CO_STACK | The memory of the thread execution stack. |
| KVSTORE_CACHE_ID | The ID of the dynamic scalable cache. |
| META_OBJ_CTX_ID | The memory of stored metadata, such as macroblock metadata. |
| TX_CALLBACK_CTX_ID | The ID of the transaction callback context. This context is used to record some modifications during transaction execution. When a transaction is committed or rolled back, the corresponding data can be found and modified. |
| LOB_CTX_ID | The Allocator ID in the ObLobManager. |
| PS_CACHE_CTX_ID | The ID of the cache for the PREPARE stmt_name FROM preparable_stmt statement. |
| TX_DATA_TABLE | The transaction data table. It stores the status of resolved transactions and is used for queries in scenarios such as dumping uncommitted or FAST COMMIT transactions. |
| MDS_DATA_ID | The ID of the memory of multi-source data. |
| LIBEASY | The memory of the network framework (EASY). |
| LOGGER_CTX_ID | The ID of the program log memory context. |
| RPC_CTX_ID | The ID of the RPC framework memory context. |
| PKT_NIO | The memory of the network framework (pkt_nio). |
| SCHEMA_SERVICE | The memory of schema metadata, such as tables and databases. |
Correspondence between CTX_NAME and MOD_NAME
The following table lists the common correspondence between CTX_NAME and 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: memory table callback module | |
| REPLAY_STATUS_CTX_ID | ReplayStatus: replay status module | |
| CO_STACK | CO_STACK: coroutine stack module | 500 |
| STORAGE_LONG_TERM_META_CTX_ID |
|
|
| STORAGE_SHORT_TERM_META_CTX_ID |
|
|
| ALL | OB_COMMON_ARRAY: OceanBase common array | ALL |
Impact of common SQL operations on memory CTX
In OceanBase Database, each SQL execution or operation corresponds to a specific CTX. The size of the data and the complexity of the operation can lead to an increase in memory usage for the CTX. The following are some common SQL operations that may cause an increase in memory usage for specific CTXs:
Sorting large amounts of data (ORDER BY, GROUP BY, etc.): Sorting operations require loading data into memory for sorting, which may increase memory usage in PLAN_CACHE_CTX_ID, MEMSTORE_CTX_ID, and DEFAULT_CTX_ID.
Aggregating large amounts of data (SUM, AVG, MAX, MIN, etc.): Aggregation operations require loading data into memory for calculations, which may increase memory usage in PLAN_CACHE_CTX_ID, MEMSTORE_CTX_ID, and DEFAULT_CTX_ID.
Joining large amounts of data (JOIN): Join operations require loading data into memory for matching, which may increase memory usage in PLAN_CACHE_CTX_ID, MEMSTORE_CTX_ID, and DEFAULT_CTX_ID.
Querying large amounts of data (SELECT): Query operations require loading data into memory for filtering and sorting, which may increase memory usage in PLAN_CACHE_CTX_ID, MEMSTORE_CTX_ID, and DEFAULT_CTX_ID.
Writing large amounts of data (INSERT, UPDATE, DELETE, etc.): Writing operations require managing and processing transactions, which may increase memory usage in TRANS_CTX_MGR_ID, MEMSTORE_CTX_ID, and DEFAULT_CTX_ID.
Logging large amounts of data (REDO, UNDO, BINLOG, etc.): Logging operations require loading data into memory for operations, which may increase memory usage in TRANS_CTX_MGR_ID, DEFAULT_CTX_ID, LOB_CTX_ID, and TX_DATA_TABLE.
Sample query
The user tenant views the memory statistics of the tenant on all nodes and displays the first 10 records.
obclient [SYS]> SELECT * FROM SYS.GV$OB_MEMORY WHERE ROWNUM <= 10;
The query result is as follows:
+-----------+----------------+----------+-------------------------------+-----------------+-------+-----------+-----------+
| TENANT_ID | SVR_IP | SVR_PORT | CTX_NAME | MOD_NAME | COUNT | HOLD | USED |
+-----------+----------------+----------+-------------------------------+-----------------+--------+-----------+-----------+
| 1004 | 172.xx.xxx.xxx | 2882 | CO_STACK | CoStack | 198 | 102187008 | 101996928 |
| 1004 | 172.xx.xxx.xxx | 2882 | CO_STACK | KvstorCacheMb | 0 | 0 | 0 |
| 1004 | 172.xx.xxx.xxx | 2882 | DEFAULT_CTX_ID | ApplySrv | 1 | 409600 | 401408 |
| 1004 | 172.xx.xxx.xxx | 2882 | DEFAULT_CTX_ID | APPLY_STATUS | 1 | 8128 | 7936 |
| 1004 | 172.xx.xxx.xxx | 2882 | DEFAULT_CTX_ID | ArcFetchQueue | 1 | 8540160 | 8519680 |
| 1004 | 172.xx.xxx.xxx | 2882 | DEFAULT_CTX_ID | ArcSenderQueue | 1 | 933888 | 931072 |
| 1004 | 172.xx.xxx.xxx | 2882 | DEFAULT_CTX_ID | AsyncFreezeTabl | 1 | 114688 | 111096 |
| 1004 | 172.xx.xxx.xxx | 2882 | DEFAULT_CTX_ID | Autoincrement | 1 | 40960 | 37032 |
| 1004 | 172.xx.xxx.xxx | 2882 | DEFAULT_CTX_ID | Backup | 1 | 16384 | 12344 |
| 1004 | 172.xx.xxx.xxx | 2882 | DEFAULT_CTX_ID | BackupIOPerMgr | 1 | 1152 | 960 |
+-----------+----------------+----------+-------------------------------+-----------------+--------+-----------+-----------+
10 rows in set