Plan Cache 相关视图包含记录执行计划的缓存状态、执行统计的相关信息及计划信息,详细的 Plan Cache 介绍参见执行计划缓存章节。
(g)v$plan_cache_stat
(g)v$plan_cache_stat 视图记录每个计划缓存的状态,每个计划缓存在该视图中有一条记录。
字段名称 | 类型 | 描述 |
tenant_id | bigint(20) | 租户 id |
svr_ip | varchar(32) | ip 地址 |
svr_port | bigint(20) | 端口号 |
sql_num | bigint(20) | plan_cache 涉及 sql 条数 |
mem_used | bigint(20) | plan_cache 已经使用的内存 |
access_count | bigint(20) | 进 plan_cache 的次数 |
hit_count | bigint(20) | 命中 plan_cache 的次数 |
hit_rate | bigint(20) | 命中 plan_cache 的次数 |
plan_num | bigint(20) | plan 的个数 |
mem_limit | bigint(20) | plan_cache 的内存上限 |
hash_bucket | bigint(20) | plan_cache hash map 中的 bucket 的个数 |
stmtkey_num | bigint(20) | plan_cache 中 stmt_key 的个数 |
(g)v$plan_cache_plan_stat
(g)v$plan_cache_plan_stat 视图记录计划缓存中所有计划的具体信息及每个计划总的执行统计信息, 每个计划在该视图中一条记录。
字段名称 | 类型 | 描述 |
tenant_id | bigint(20) | 租户 id |
svr_ip | varchar(32) | 机器 ip |
svr_port | bigint(20) | 机器端口号 |
plan_id | bigint(20) | 计划的 id |
sql_id | varchar(32) | 这条 SQL 的 id |
type | bigint(20) | plan 的类型:
|
db_id | bigint(20) unsigned | 数据库的 id |
is_bind_sensitive | bigint(20) | 该计划是否需要打开 acs |
is_bind_aware | bigint(20) | 该计划已经打开了 acs |
statement | varchar(4096) | 参数化后的 SQL 语句 |
query_sql | varchar(65536) | 第一次加载计划时查询的原始 SQL语句 |
sys_vars | varchar(4096) | 影响计划的系统变量的值 |
plan_hash | bigint(20) | 计划的 hash 值 |
first_load_time | timestamp(6) | 第一次被加载时间 |
schema_version | bigint(20) | schema 版本号 |
merged_version | bigint(20) | 当前缓存计划对应的合并版本号 |
last_active_time | timestamp(6) | 上一次被执行时间 |
avg_exe_usec | bigint(20) | 平均执行时间 |
slowest_exe_time | timestamp(6) | 最慢一次执行耗时 |
slowest_exe_usec | bigint(20) | 最慢执行时间戳 |
slow_count | bigint(20) | 当前计划成为慢查询次数 |
hit_count | bigint(20) | 被命中次数 |
plan_size | bigint(20) | 计划的大小 |
executions | bigint(20) | 执行次数 |
disk_reads | bigint(20) | 所有执行物理读次数 |
direct_writes | bigint(20) | 所有执行写盘的次数 |
buffer_gets | bigint(20) | 所有执行逻辑读次数 |
application_wait_time | bigint(20) unsigned | 所有执行所有 application 类事件的总时间 |
concurrency_wait_time | bigint(20) unsigned | 所有执行所有 concurrency 类事件的总时间 |
user_io_wait_time | bigint(20) unsigned | 所有执行所有 user_io 类事件的总时间 |
rows_processed | bigint(20) | 所有执行选择的结果行数或执行更改表中的行数 |
elapsed_time | bigint(20) unsigned | 所有执行接收到请求到执行结束消耗时间 |
cpu_time | bigint(20) unsigned | 所有执行消耗的 cpu 时间 |
large_querys | bigint(20) | 被判断为大查询的次数 |
delayed_large_querys | bigint(20) | 被判断为大查询且被丢入大查询队列的次数 |
outline_version | bigint(20) | outline 版本号 |
outline_id | bigint(20) | outline 的 id,为-1表示不是通过绑定 outline 生成的计划 |
outline_data | varchar(65536) | 计划对应的 outline 信息 |
acs_sel_info | varchar(65536) | 当前 acs 计划对应的选择率空间 |
table_scan | tinyint(4) | 表示该查询是否为主键扫描 |
evolution | bool | 表示该执行计划是否在演进中 |
evo_executions | bigint(20) | 演进次数 |
evo_cpu_time | bigint(20) unsigned | 演进过程中总的执行 CPU 时间 |
timeout_count | bigint(20) | 超时次数 |
ps_stmt_id | bigint(20) | prepare statement id |
(g)v$plan_cache_plan_explain
(g)v$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 | bigint(20) | 租户 id |
IP | varchar(32) | ip 地址 |
PORT | bigint(20) | 端口号 |
PLAN_ID | bigint(20) | plan 的 id |
OPERATOR | varchar(128) | operator 的名称 |
NAME | varchar(128) | 表的名称 |
ROWS | bigint(20) | 预估的结果行数 |
COST | bigint(20) | 预估的代价 |
PROPERTY | varchar(256) | 对应 operator 的信息 |