Files
2022-02-10 14:51:49 +08:00

15 KiB

计划缓存视图

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

(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 的信息