Files
oceanbase/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/1.g-v-sql_audit-introduction.md
2022-02-10 14:51:49 +08:00

7.6 KiB

(g)v$sql_audit 介绍

(g)v$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 G,可设置范围为 [64M,+∞]。

    obclient>ALTER SYSTEM SET sql_audit_memory_limit = '3G';
    

sql_audit 淘汰机制

  • sql_audit 每隔 1s 会检测后台任务并根据以下标准决定是否淘汰:

    • sql_audit 内存最大可使用上限为 avail_mem_limit = min (OBServer 可使用内存 *10%sql_audit_memory_limit)
    • 当 sql_audidt 记录数超过 900 万条时,触发淘汰。
  • sql_audit 根据以下标准决定是否停止淘汰:

    • 如果是达到内存上限触发淘汰则:
    • 如果是达到记录数上限触发的淘汰则淘汰到 800 万行记录时停止淘汰。

sql_audit 字段解释

字段名称 类型 描述
SVR_IP varchar(32) IP 地址
SVR_PORT bigint(20) 端口号
REQUEST_ID bigint(20) 请求的 ID 号
TRACE_ID varchar(128) 这条语句的 trace ID
CLIENT_IP varchar(32) 发送请求的 client IP
CLIENT_PORT bigint(20) 发送请求的 client port
TENANT_ID bigint(20) 发送请求的租户 ID
TENANT_NAME varchar(64) 发送请求的租户名称
USER_ID bigint(20) 发送请求的用户 ID
USER_NAME varchar(64) 发送请求的用户名称
SQL_ID varchar(32) 这条 SQL 的 ID
QUERY_SQL varchar(32768) 实际的 SQL 语句
PLAN_ID bigint(20) 执行计划 ID
AFFECTED_ROWS bigint(20) 影响行数
RETURN_ROWS bigint(20) 返回行数
PARTITION_CNT bigint(20) 该请求涉及的分区数
RET_CODE bigint(20) 执行结果返回码
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) 执行计划类型(local/ remote/distribute)
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) 块缓存命中次数
BLOCK_INDEX_CACHE_HIT bigint(20) 块索引缓存命中次数
DISK_READS bigint(20) 物理读次数
EXECUTION_ID bigint(20) 执行 ID
SESSION_ID bigint(20) SESSION 的 ID
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 中读的行数
REQUEST_MEMORY_USED bigint(20) 该请求消耗的内存