基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
GV$OB_SQL_AUDIT
更新时间:2026-06-22 18:30:32
GV$OB_SQL_AUDIT 是全局 SQL 审计表,可以用来查看每次请求客户端来源、执行服务器信息、执行状态信息、等待事件以及执行各阶段耗时等。
sql_audit 相关设置
设置
sql_audit使用开关。obclient> ALTER SYSTEM SET enable_sql_audit = true; /*开启 sql_audit*/ obclient> ALTER SYSTEM SET enable_sql_audit = false; /*关闭 sql_audit*/设置 sql audit 所使用的内存,占据租户内存的百分比。默认内存百分比为 3,可设置范围为 [0, 80]。
obclient> SET global ob_sql_audit_percentage = 3; Query OK, 0 rows affected
SQL Audit 淘汰机制
租户的后台任务每隔 1s 会根据 OBServer 和 SQL Audit 的内存使用情况来决定是否触发淘汰。SQL Audit 内存上限根据 ob_sql_audit_percentage 分配可用的最大内存。
当 SQL Audit 的实际内存使用达到指定阈值时,满足触发淘汰的条件,开启淘汰;当 SQL Audit 的实际内存使用降到指定阈值时,满足停止淘汰的条件,停止淘汰。SQL Audit 淘汰机制如下表所示。
| 触发机制 | SQL Audit 内存上限 | 触发淘汰的条件 | 停止淘汰的条件 |
|---|---|---|---|
| 内存使用 | [0,64M] | 内存上限 *50% | 0 M |
| 内存使用 | [64M,100M] | 内存上限-20M | 内存上限-40 M |
| 内存使用 | [100M,5G] | 内存上限 *80% | 内存上限 *60% |
| 内存使用 | [5G,+∞] | 内存上限-1G | 内存上限-2 G |
| 记录数 | 无 | 900 万 | 800万 |
sql_audit 字段说明
| 字段名称 | 类型 | 描述 | ||||
|---|---|---|---|---|---|---|
| SVR_IP | varchar(46) | IP 地址 | ||||
| SVR_PORT | bigint(20) | 端口号 | ||||
| REQUEST_ID | bigint(20) | 请求的 ID 号 | ||||
| SQL_EXEC_ID | bigint(20) | 如果 SQL 计划正在被执行,则显示对应的 SQL ID | ||||
| TRACE_ID | varchar(128) | 这条语句的 Trace ID | ||||
| SID | bigint(20) unsigned | Session ID | ||||
| CLIENT_IP | varchar(46) | 发送请求的 Client IP | ||||
| CLIENT_PORT | bigint(20) | 发送请求的 Client Port | ||||
| TENANT_ID | bigint(20) | 发送请求的租户 ID | ||||
| TENANT_NAME | varchar(64) | 发送请求的租户名称 | ||||
| EFFECTIVE_TENANT_ID | bigint(20) | 租户 ID | ||||
| USER_ID | bigint(20) | 发送请求的用户 ID | ||||
| USER_NAME | varchar(64) | 发送请求的用户名称 | ||||
| USER_GROUP | bigint(20) | 用户组 | ||||
| USER_CLIENT_IP | varchar(32) | 发送请求的客户端的 IP | ||||
| DB_ID | bigint(20) unsigned | 数据库 ID | ||||
| DB_NAME | varchar(128) | 数据库名称 | ||||
| SQL_ID | varchar(32) | 这条 SQL 的 ID | ||||
| QUERY_SQL | longtext | 实际的 SQL 语句 | ||||
| PLAN_ID | bigint(20) | 执行计划 ID | ||||
| AFFECTED_ROWS | bigint(20) | 影响行数 | ||||
| RETURN_ROWS | bigint(20) | 返回行数 | ||||
| PARTITION_CNT | bigint(20) | 该请求涉及的分区数 | ||||
| RET_CODE | bigint(20) | 执行结果返回码 | ||||
| QC_ID | bigint(20) unsigned | 并行查询中的 qc_id | ||||
| DFO_ID | bigint(20) | 并行查询中的 dfo_id | ||||
| SQC_ID | bigint(20) | 并行查询中的 sqc_id | ||||
| WORKER_ID | bigint(20) | 线程 ID | ||||
| EVENT | varchar(64) | 最长等待事件名称 | ||||
| P1TEXT | varchar(64) | 等待事件参数 1 | ||||
| P1 | bigint(20) unsigned | 等待事件参数 1 的值 | ||||
| P2TEXT | varchar(64) | 等待事件参数 2 | ||||
| P2 | bigint(20) unsigned | 等待事件参数 2 的值 | ||||
| P3TEXT | varchar(64) | 等待事件参数 3 | ||||
| P3 | bigint(20) unsigned | 等待事件参数 3 的值 | ||||
| LEVEL | bigint(20) | 等待事件的 Level 级别 | ||||
| WAIT_CLASS_ID | bigint(20) | 等待事件所属的 Class ID | ||||
| WAIT_CLASS# | bigint(20) | 等待事件所属的 Class 的下标 | ||||
| WAIT_CLASS | varchar(64) | 等待事件所属的 Class 名称 | ||||
| STATE | varchar(19) | 等待事件的状态 | ||||
| WAIT_TIME_MICRO | bigint(20) | 该等待事件所等待的时间(微秒) | ||||
| TOTAL_WAIT_TIME_MICRO | bigint(20) | 执行过程所有等待的总时间(微秒) | ||||
| TOTAL_WAITS | bigint(20) | 执行过程总等待的次数 | ||||
| RPC_COUNT | bigint(20) | 发送 RPC 个数 | ||||
| PLAN_TYPE | bigint(20) | 执行计划类型:
|
||||
| IS_INNER_SQL | tinyint(4) | 是否为内部 SQL 请求 | ||||
| IS_EXECUTOR_RPC | tinyint(4) | 当前请求是否为 RPC 请求 | ||||
| IS_HIT_PLAN | tinyint(4) | 是否命中计划缓存 | ||||
| REQUEST_TIME | bigint(20) | 开始执行时间点 | ||||
| ELAPSED_TIME | bigint(20) | 接收到请求到执行结束消耗总时间 | ||||
| NET_TIME | bigint(20) | 发送 RPC 到接收到请求时间 | ||||
| NET_WAIT_TIME | bigint(20) | 接收到请求到进入队列时间 | ||||
| QUEUE_TIME | bigint(20) | 请求在队列等待事件 | ||||
| DECODE_TIME | bigint(20) | 出队列后 Decode 时间 | ||||
| GET_PLAN_TIME | bigint(20) | 开始执行到获得计划时间 | ||||
| EXECUTE_TIME | bigint(20) | Plan 执行消耗时间 | ||||
| APPLICATION_WAIT_TIME | bigint(20) unsigned | 所有 Application 类事件的总时间 | ||||
| CONCURRENCY_WAIT_TIME | bigint(20) unsigned | 所有 Concurrency 类事件的总时间 | ||||
| USER_IO_WAIT_TIME | bigint(20) unsigned | 所有 user_io 类事件的总时间 |
||||
| SCHEDULE_TIME | bigint(20) unsigned | 所有 Schedule 类事件的时间 | ||||
| ROW_CACHE_HIT | bigint(20) | 行缓存命中次数 | ||||
| BLOOM_FILTER_CACHE_HIT | bigint(20) | Bloom Filter 缓存命中次数 | ||||
| BLOCK_CACHE_HIT | bigint(20) | 块缓存命中次数 | ||||
| DISK_READS | bigint(20) | 物理读次数 | ||||
| RETRY_CNT | bigint(20) | 重试次数 | ||||
| TABLE_SCAN | tinyint(4) | 判断该请求是否含全表扫描 | ||||
| CONSISTENCY_LEVEL | bigint(20) | 一致性级别 | ||||
| MEMSTORE_READ_ROW_COUNT | bigint(20) | MEMSTORE 中读的行数 |
||||
| SSSTORE_READ_ROW_COUNT | bigint(20) | SSSTORE 中读的行数 |
||||
| DATA_BLOCK_READ_CNT | bigint(20) | 访问的数据微块数量 | ||||
| DATA_BLOCK_CACHE_HIT | bigint(20) | 命中数据微块cache数量 | ||||
| INDEX_BLOCK_READ_CNT | bigint(20) | 访问的中间层微块数量 | ||||
| INDEX_BLOCK_CACHE_HIT | bigint(20) | 命中中间层微块cache数量 | ||||
| BLOCKSCAN_BLOCK_CNT | bigint(20) | 单边扫描的数据微块数量 | ||||
| BLOCKSCAN_ROW_CNT | bigint(20) | 单边扫描的数据行数 | ||||
| PUSHDOWN_STORAGE_FILTER_ROW_CNT | bigint(20) | 下压存储filter过滤后行数 | ||||
| REQUEST_MEMORY_USED | bigint(20) | 该请求消耗的内存 | ||||
| EXPECTED_WORKER_COUNT | bigint(20) | 请求期望的工作线程数 | ||||
| USED_WORKER_COUNT | bigint(20) | 请求实际使用的工作线程数 | ||||
| SCHED_INFO | varchar(16384) | 请求的调度信息 | ||||
| FUSE_ROW_CACHE_HIT | bigint(20) | 暂不支持该字段,字段默认为 NULL |
||||
| PS_CLIENT_STMT_ID | bigint(20) | 请求对应的 Prepare ID:
|
||||
| PS_INNER_STMT_ID | bigint(20) | 请求对应的 Prepare ID:
|
||||
| TX_ID | bigint(20) | 请求对应的事务 ID | ||||
| SNAPSHOT_VERSION | bigint(20) | SQL语句使用的读快照版本 | REQUEST_TYPE | bigint(20) | 请求对应的类型:
|
|
| IS_BATCHED_MULTI_STMT | tinyint(4) | 是否进行 Batch Multi Stmt 的优化 | ||||
| OB_TRACE_INFO | VARCHAR2(4096) | 用户设置的 Trace 信息 | ||||
| PLAN_HASH | bigint(20) unsigned | 执行计划的 Hash 值 | ||||
| LOCK_FOR_READ_TIME | bigint(20) | 读取数据时等待锁的耗时,单位:微秒 | ||||
| PARAMS_VALUE | longtext | 参数值 | ||||