首批通过分布式安全可靠测评,为关键业务系统打造
计划缓存视图
更新时间:2023-07-18 17:27:22
计划缓存视图包含记录执行计划的缓存状态、执行统计的相关信息以及计划信息。
GV$PLAN_CACHE_STAT
GV$PLAN_CACHE_STAT 视图用于记录每个计划缓存的状态,每个计划缓存在该视图中有一条记录。
| 字段名称 | 类型 | 描述 |
|---|---|---|
| SVR_IP | VARCHAR2(32) | 服务器的 IP 地址 |
| SVR_PORT | NUMBER(38) | 端口号 |
| SQL_NUM | NUMBER(38) | plan_cache 涉及 SQL 条数 |
| MEM_USED | NUMBER(38) | plan_cache 已经使用的内存 |
| MEM_HOLD | NUMBER(38) | plan_cache 持有的内存 |
| ACCESS_COUNT | NUMBER(38) | 访问 plan_cache 的次数 |
| HIT_COUNT | NUMBER(38) | 命中 plan_cache 的次数 |
| HIT_RATE | NUMBER(38) | plan_cache 的命中率 |
| PLAN_NUM | NUMBER(38) | Plan 的个数 |
| MEM_LIMIT | NUMBER(38) | plan_cache 的内存上限 |
| HASH_BUCKET | NUMBER(38) | plan_cache Hash Map 中的 Bucket 的个数 |
| STMTKEY_NUM | NUMBER(38) | plan_cache 中 stmt_key 的个数 |
GV$PLAN_CACHE_PLAN_STAT
GV$PLAN_CACHE_PLAN_STAT 用于记录计划缓存中所有执行计划的具体信息及每个计划总的执行统计信息,每个执行计划在该视图中有一条记录。
| 字段名称 | 类型 | 描述 |
|---|---|---|
| TENANT_ID | NUMBER(38) | 租户 ID |
| SVR_IP | VARCHAR2(32) | 服务器的 IP 地址 |
| SVR_PORT | NUMBER(38) | 服务器端口号 |
| PLAN_ID | NUMBER(38) | 执行计划的 ID |
| SQL_ID | VARCHAR2(32) | 该条 SQL 的 ID |
| TYPE | NUMBER(38) | 对于 SQL 计划的缓存,该字段表示执行计划的类型:
|
| DB_ID | NUMBER(38) | 数据库的 ID |
| IS_BIND_SENSITIVE | NUMBER(38) | 该计划是否需要打开 ACS |
| IS_BIND_AWARE | NUMBER(38) | 该计划已经打开了 ACS |
| STATEMENT | VARCHAR2(65536) | 参数化后的 SQL 语句 |
| QUERY_SQL | VARCHAR2(65536) | 第一次加载计划时查询的原始 SQL 语句 |
| SPECIAL_PARAMS | VARCHAR2(4096) | 表示不可参数化的参数值 |
| PARAM_INFOS | VARCHAR2(65536) | 表示参数化信息 |
| SYS_VARS | VARCHAR2(4096) | 影响缓存对象的系统变量的值 |
| PLAN_HASH | NUMBER(38) | SQL 执行计划的哈希值 |
| FIRST_LOAD_TIME | TIMESTAMP(6) WITH LOCAL TIME ZONE | 第一次被加载时间 |
| SCHEMA_VERSION | NUMBER(38) | Schema 版本号 |
| MERGED_VERSION | NUMBER(38) | 当前缓存的 Plan 对应的合并版本号 |
| LAST_ACTIVE_TIME | TIMESTAMP(6) WITH LOCAL TIME ZONE | 上一次被执行时间 |
| AVG_EXE_USEC | NUMBER(38) | 平均执行时间 |
| SLOWEST_EXE_TIME | TIMESTAMP(6) WITH LOCAL TIME ZONE | 最慢执行时间戳 |
| SLOWEST_EXE_USEC | NUMBER(38) | 最慢一次执行耗时 |
| SLOW_COUNT | NUMBER(38) | 当前 SQL 计划成为慢查询的次数 |
| HIT_COUNT | NUMBER(38) | 被命中次数 |
| PLAN_SIZE | NUMBER(38) | 缓存对象占用的内存大小 |
| EXECUTIONS | NUMBER(38) | 执行次数 |
| DISK_READS | NUMBER(38) | 所有执行物理读次数 |
| DIRECT_WRITES | NUMBER(38) | 所有执行写盘的次数 |
| BUFFERS_GETS | NUMBER(38) | 所有执行逻辑读次数 |
| APPLICATION_WATI_TIME | NUMBER(38) | 所有执行所有 Application 类事件的总时间 |
| CONCURRENCY_WAIT_TIME | NUMBER(38) | 所有执行所有 Concurrency 类事件的总时间 |
| USER_IO_WAIT_TIME | NUMBER(38) | 所有执行所有 USER_IO 类事件的总时间 |
| ROWS_PROCESSED | NUMBER(38) | 所有执行选择的结果行数或执行更改表中的行数 |
| ELAPSED_TIME | NUMBER(38) | 所有执行接收到请求到执行结束消耗时间 |
| CPU_TIME | NUMBER(38) | 所有执行消耗的 CPU 时间 |
| LARGE_QUERYS | NUMBER(38) | 被判断为大查询的次数 |
| DELAYED_LARGE_QUERYS | NUMBER(38) | 被判断为大查询且被丢入大查询队列的次数 |
| DELAYED_PX_QUERYS | NUMBER(38) | 并行查询被丢回队列重试的次数 |
| OUTLINE_VERSION | NUMBER(38) | Outline 版本号 |
| OUTLINE_ID | NUMBER(38) | Outline 的 ID。 如果为 -1 表示不是通过绑定 Outline 生成的计划 |
| OUTLINE_DATA | VARCHAR2(65536) | 计划对应的 Outline 信息 |
| HINTS_INFO | VARCHAR2(65536) | SQL 计划的 Hint 信息 |
| HINTS_ALL_WORKED | NUMBER(38) | SQL 计划中的 Hint 是否都已经生效 |
| ACS_SEL_INFO | VARCHAR2(65536) | 当前 ACS 计划对应的选择率空间 |
| TABLE_SCAN | NUMBER(38) | 表示该查询是否为主键扫描 |
| EVOLUTION | NUMBER(38) | 表示该执行计划是否在演进中 |
| EVO_EXECUTIONS | NUMBER(38) | 演进次数 |
| EVO_CPU_TIME | NUMBER(38) | 演进过程中总的执行 CPU 时间 |
| TIMEOUT_COUNT | NUMBER(38) | 超时次数 |
| PS_STMT_ID | NUMBER(38) | Prepare Statement 的 ID |
| SESSID | NUMBER(38) | 缓存对象所在的 Session ID |
| TEMP_TABLES | VARCHAR2(65536) | SQL 计划中包含的临时表表名。如果没有临时表,字段为空。 |
| IS_USE_JIT | NUMBER(38) | SQL 计划是否开启了表达式编译执行 |
| OBJECT_TYPE | VARCHAR2(65536) | 缓存对象的类型:
|
| PL_SCHEMA_ID | NUMBER(38) | 对于非匿名块的 PL 对象,字段为缓存对象的 Schema ID;对于匿名块,字段与 PS_STMT_ID 相同;对于 SQL 计划,该字段无意义。 |
| IS_BATCHED_MULTI_STMT | NUMBER(38) | 表示是否为 Batched Multi Stmt 优化的计划 |
GV$PLAN_CACHE_PLAN_EXPLAIN
GV$PLAN_CACHE_PLAN_EXPLAIN 用于查询某条 SQL 在计划缓存中的执行计划。
注意
- 如果查询
GV$PLAN_CACHE_PLAN_EXPLAIN表, 则需要指定IP、Port、TENANT_ID、PLAN_ID等条件。- 如果查询
V$PLAN_CACHE_PLAN_EXPLAIN表, 则需要指定TENANT_ID、PLAN_ID等条件。
| 字段名称 | 类型 | 描述 |
|---|---|---|
| TENANT_ID | NUMBER(38) | 租户 ID |
| SVR_IP | VARCHAR2(32) | 服务器 IP 地址 |
| SVR_PORT | NUMBER(38) | 服务器端口号 |
| PLAN_ID | NUMBER(38) | 执行计划的 ID |
| PLAN_DEPTH | NUMBER(38) | Operator 在展示时的深度 |
| PLAN_LINE_ID | VARCHAR2(32) | Operator 的编号 |
| OPERATOR | VARCHAR2(128) | 算子的名称 |
| NAME | VARCHAR2(256) | 表的名称 |
| ROWS | NUMBER(38) | 预估的结果行数 |
| COST | NUMBER(38) | 预估的代价 |
| PROPERTY | VARCHAR2(4096) | 对应算子的信息 |