7.6 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	
			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 内存最大可使用上限为 
- 
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) | 该请求消耗的内存 | 
