Note
- This view is available starting with V4.3.5 for V4.3.x.
- This view is available starting with V4.2.2 for V4.2.x.
Purpose
The GV$OB_ACTIVE_SESSION_HISTORY view displays the active session history of all OBServer nodes across all tenants.
Columns
| Column | Type | Nullable | Description |
|---|---|---|---|
| SVR_IP | varchar(46) | NO | The IP address of the server to which the sample belongs. |
| SVR_PORT | bigint(20) | NO | The port number of the server to which the sample belongs. |
| SAMPLE_ID | bigint(20) | NO | The unique ID of the sample. |
| SAMPLE_TIME | timestamp(6) | NO | The time when the sample was taken. |
| CON_ID | bigint(20) | NO | The tenant ID. |
| USER_ID | bigint(20) | NO | The ID of the user of the session from which the sample was taken. |
| SESSION_ID | bigint(20) | NO | The ID of the session from which the sample was taken. For V4.3.x:
|
| SESSION_TYPE | varchar(10) | NO | The session type.
|
| SESSION_STATE | varchar(7) | NO | The session state.
|
| SQL_ID | varchar(32) | NO | The SQL ID. |
| PLAN_ID | bigint(20) | NO | The ID of the execution plan of the sampled SQL in the plan cache. This ID is used to associate the sampling point with the execution plan. |
| TRACE_ID | varchar(64) | NO | The trace ID of the operator. |
| EVENT | varchar(64) | NO | The description of the wait event. |
| EVENT_NO | bigint(20) | NO | The internal ID of the wait event. This ID is used to associate the sampling point with other tables. |
| EVENT_ID | bigint(20) | YES | The ID of the wait event. |
| P1TEXT | varchar(64) | NO | The name of parameter 1 of the wait event. The name changes based on the value of the EVENT field. |
| P1 | bigint(20) | NO | The value of parameter 1 of the wait event. |
| P2TEXT | varchar(64) | NO | The name of parameter 2 of the wait event. The name changes based on the value of the EVENT field. |
| P2 | bigint(20) | NO | The value of parameter 2 of the wait event. |
| P3TEXT | varchar(64) | NO | The name of parameter 3 of the wait event. The name changes based on the value of the EVENT field. |
| P3 | bigint(20) | NO | The value of parameter 3 of the wait event. |
| WAIT_CLASS | varchar(64) | NO | The type of the wait event. |
| WAIT_CLASS_ID | bigint(20) | NO | The ID of the type of the wait event. This ID is used to associate the sampling point with other tables. |
| TIME_WAITED | bigint(20) | NO | The total wait time of the wait event, in microseconds (us). |
| SQL_PLAN_LINE_ID | bigint(20) | YES | The ID of the SQL operator in the SQL plan at the time the sample was taken. |
| GROUP_ID | bigint(20) | YES | The ID of the resource group to which the sample belongs. |
| PLAN_HASH | bigint(20) unsigned | YES | The plan hash of the current SQL statement. |
| THREAD_ID | bigint(20) | YES | The ID of the thread to which the current active session belongs. |
| STMT_TYPE | bigint(20) | YES | The type of the SQL statement of the current active session. |
| TIME_MODEL | bigint(20) | NO | The time model information, which is a collection of data from all IN_XXX fields (such as IN_PARSE and IN_PL_PARSE). |
| IN_PARSE | varchar(1) | NO | Indicates whether the session is parsing an SQL statement at the time the sample was taken. |
| IN_PL_PARSE | varchar(1) | NO | Indicates whether the session is parsing an SQL PL statement at the time the sample was taken. |
| IN_PLAN_CACHE | varchar(1) | NO | Indicates whether the session is matching a plan in the plan cache at the time the sample was taken. |
| IN_SQL_OPTIMIZE | varchar(1) | NO | Indicates whether the session is optimizing an SQL statement at the time the sample was taken. |
| IN_SQL_EXECUTION | varchar(1) | NO | Indicates whether the session is executing an SQL statement at the time the sample was taken. |
| IN_PX_EXECUTION | varchar(1) | NO | Indicates whether the session is executing an SQL statement in parallel at the time the sample was taken. If the session is in this state, it must also be in the IN_SQL_EXECUTION state. |
| IN_SEQUENCE_LOAD | varchar(1) | NO | Indicates whether the session is fetching values from an auto-increment column or a sequence at the time the sample was taken. |
| IN_COMMITTING | varchar(1) | NO | Indicates whether the sampling point is in the transaction commit phase. |
| IN_STORAGE_READ | varchar(1) | NO | Indicates whether the sampling point is in the storage read phase. |
| IN_STORAGE_WRITE | varchar(1) | NO | Indicates whether the sampling point is in the storage write phase. |
| IN_REMOTE_DAS_EXECUTION | varchar(1) | NO | Indicates whether the sampling point is in the DAS remote execution phase. |
| IN_FILTER_ROWS | varchar(1) | NO | Indicates whether the sampling point is in the storage push-down execution phase. |
| IN_RPC_ENCODE | varchar(1) | NO | The serialization operation being performed on the current SQL statement. |
| IN_RPC_DECODE | varchar(1) | NO | The deserialization operation being performed on the current SQL statement. |
| IN_CONNECTION_MGR | varchar(1) | NO | The connection operation being performed on the current SQL statement. |
| PROGRAM | varchar(64) | YES | The name of the program currently running at the sampling point.
|
| MODULE | varchar(64) | YES | The MODULE value recorded by the session at the sampling point, which is set by the DBMS_APPLICATION_INFO.SET_MODULE package. |
| ACTION | varchar(64) | YES | The ACTION value recorded by the session at the sampling point, which is set by the DBMS_APPLICATION_INFO.SET_ACTION package. |
| CLIENT_ID | varchar(64) | YES | The CLIENT_ID value recorded by the session at the sampling point, which is set by the DBMS_SESSION.set_identifier package. |
| BACKTRACE | varchar(512) | YES | An auxiliary debugging field used to record the code call stack at the time of the event. The value of this field is always NULL. |
| TM_DELTA_TIME | bigint(20) | YES | The time interval for calculating the time model, in microseconds. |
| TM_DELTA_CPU_TIME | bigint(20) | YES | The amount of time spent on the CPU during the TM_DELTA_TIME time period. |
| TM_DELTA_DB_TIME | bigint(20) | YES | The amount of time spent on database calls during the TM_DELTA_TIME time period. |
| TOP_LEVEL_SQL_ID | varchar(32) | YES | The ID of the top-level SQL statement. |
| IN_PLSQL_COMPILATION | varchar(1) | NO | The current PL compilation status: Y/N |
| IN_PLSQL_EXECUTION | varchar(1) | NO | The current PL execution status: Y/N |
| PLSQL_ENTRY_OBJECT_ID | bigint(20) | YES | The OBJECT ID of the top-level PL statement. |
| PLSQL_ENTRY_SUBPROGRAM_ID | bigint(20) | YES | The Sub project ID of the top-level PL statement. |
| PLSQL_ENTRY_SUBPROGRAM_NAME | varchar(32) | YES | The Sub project name of the top-level PL statement. |
| PLSQL_OBJECT_ID | bigint(20) | YES | The ID of the PL object currently being executed. |
| PLSQL_SUBPROGRAM_ID | bigint(20) | YES | The ID of the PL subprogram currently being executed. |
| PLSQL_SUBPROGRAM_NAME | varchar(32) | YES | The name of the PL subprogram currently being executed. |
| TX_ID | bigint(20) | YES | The ID of the current transaction. |
| BLOCKING_SESSION_ID | bigint(20) | YES | If the current session is blocked, the ID of the session that is blocking the current session is displayed. This field is effective only in lock conflict scenarios, displaying the ID of the session that holds the lock. |
| TABLET_ID | bigint(20) | YES | The ID of the tablet being processed by the current SQL statement. |
| PROXY_SID | bigint(20) | YES | The ID of the proxy session. |
| TX_ID | bigint(20) | YES | The ID of the current transaction.
Note
|
| DELTA_READ_IO_REQUESTS | bigint(20) | NO | The number of read requests between two sampling points.
Note
|
| DELTA_READ_IO_BYTES | bigint(20) | NO | The cumulative size of files read between two sampling points.
Note
|
| DELTA_WRITE_IO_REQUESTS | bigint(20) | NO | The number of write requests between two sampling points.
Note
|
| DELTA_WRITE_IO_BYTES | bigint(20) | NO | The cumulative size of files written between two sampling points.
Note
|
Sample query
Query the active session history of all OBServer nodes where the tenant is located.
obclient [oceanbase]> SELECT * FROM oceanbase.GV$OB_ACTIVE_SESSION_HISTORY LIMIT 1\G
The query result is as follows:
*************************** 1. row ***************************
SVR_IP: xx.xx.xx.xx
SVR_PORT: 2882
SAMPLE_ID: 1922813
SAMPLE_TIME: 2025-03-04 10:53:37.507877
CON_ID: 1001
USER_ID: 0
SESSION_ID: -9223372036854729409
SESSION_TYPE: BACKGROUND
SESSION_STATE: ON CPU
SQL_ID: NULL
PLAN_ID: 0
TRACE_ID: NULL
EVENT:
EVENT_NO: 0
EVENT_ID: NULL
P1TEXT:
P1: 0
P2TEXT:
P2: 0
P3TEXT:
P3: 0
WAIT_CLASS: OTHER
WAIT_CLASS_ID: 100
TIME_WAITED: 0
SQL_PLAN_LINE_ID: NULL
GROUP_ID: 0
PLAN_HASH: NULL
THREAD_ID: 82216
STMT_TYPE: NULL
TIME_MODEL: 0
IN_PARSE: N
IN_PL_PARSE: N
IN_PLAN_CACHE: N
IN_SQL_OPTIMIZE: N
IN_SQL_EXECUTION: N
IN_PX_EXECUTION: N
IN_SEQUENCE_LOAD: N
IN_COMMITTING: N
IN_STORAGE_READ: N
IN_STORAGE_WRITE: N
IN_REMOTE_DAS_EXECUTION: N
IN_FILTER_ROWS: N
IN_RPC_ENCODE: N
IN_RPC_DECODE: N
IN_CONNECTION_MGR: N
PROGRAM: T1001_LogService
MODULE: LogRestoreService
ACTION: RemoteLogWriter
CLIENT_ID: NULL
BACKTRACE: NULL
TM_DELTA_TIME: 1017781
TM_DELTA_CPU_TIME: 1017781
TM_DELTA_DB_TIME: 1017781
TOP_LEVEL_SQL_ID: NULL
IN_PLSQL_COMPILATION: N
IN_PLSQL_EXECUTION: N
PLSQL_ENTRY_OBJECT_ID: NULL
PLSQL_ENTRY_SUBPROGRAM_ID: NULL
PLSQL_ENTRY_SUBPROGRAM_NAME: NULL
PLSQL_OBJECT_ID: NULL
PLSQL_SUBPROGRAM_ID: NULL
PLSQL_SUBPROGRAM_NAME: NULL
BLOCKING_SESSION_ID: NULL
TABLET_ID: NULL
PROXY_SID: -9223372036854729409
TX_ID: NULL
DELTA_READ_IO_REQUESTS: 0
DELTA_READ_IO_BYTES: 0
DELTA_WRITE_IO_REQUESTS: 0
DELTA_WRITE_IO_BYTES: 0
1 row in set (0.014 sec)
References
Query the active session history of all OBServer nodes for the current tenant: V$OB_ACTIVE_SESSION_HISTORY
After you obtain the active session history, you can generate an ASH report as needed for analysis. For more information about ASH, see ASH report.
