OceanBase 计划缓存视图
计划缓存视图包含记录执行计划的缓存状态、执行统计的相关信息以及计划信息。
(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) |
执行计划的类型:
|
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 的信息 |