计划缓存视图包含记录执行计划的缓存状态、执行统计的相关信息以及计划信息。

(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 用于记录计划缓存中所有 plan 的具体信息及每个计划总的执行统计信息,每个 plan 在该视图中有一条记录。

字段名称

类型

描述

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)

执行计划的类型:

  • 1 表示 local plan

  • 2 表示 remote plan

  • 3 表示 distribute plan

db_id

bigint(20) unsigned

database 的 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)

当前缓存的 plan 对应的合并版本号

last_active_time

timestamp(6)

上一次被执行时间

avg_exe_usec

bigint(20)

平均执行时间

slowest_exe_time

timestamp(6)

最慢一次执行耗时

slowest_exe_usec

bigint(20)

最慢执行时间戳

slow_count

bigint(20)

当前 plan 成为慢查询次数

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)

执行计划的 ID

OPERATOR

varchar(128)

operator 的名称

NAME

varchar(128)

表的名称

ROWS

bigint(20)

预估的结果行数

COST

bigint(20)

预估的代价

PROPERTY

varchar(256)

对应 operator 的信息