功能

v$plan_cache_plan_stat 视图记录了当前租户在当前 Server 上的计划缓存中缓存的每一个缓存对象的状态。

注意

该表不仅缓存了 SQL 计划对象,也缓存了 PL 对象(例如匿名块、PL Package 以及 PL Function),某些字段只在特定对象下有效。

相关表/视图

gv$plan_cache_plan_stat

字段说明

字段名称

类型

是否可以为 NULL

描述

tenant_id

bigint(20)

NO

租户 ID。

svr_ip

varchar(32)

NO

机器 IP。

svr_port

bigint(20)

NO

机器端口号。

plan_id

bigint(20)

NO

该计划的 ID。

sql_id

varchar(32)

NO

缓存对象对应的 SQL ID,如果是 PL 对象,该字段为 NULL。

type

bigint(20)

NO

对于 SQL 计划缓存,字段表示计划的类型:

  • 1:表示本地计划

  • 2:表示远程计划

  • 3:表示分配计划

对于 PL 对象缓存,字段表示 PL 对象的类型:

  • 1:表示程序

  • 2:表示函数

  • 3:表示包

  • 4:表示匿名块

is_bind_sensitive

bigint(20)

NO

该计划是否需要打开 ACS。

is_bind_aware

bigint(20)

NO

该计划已经打开了 ACS。

db_id

bigint(20) unsigned

NO

数据库的 ID。

statement

varchar(65536)

NO

对于 SQL 计划,该字段为参数化后的 SQL 语句;对于匿名块对象,该字段为参数化后的匿名块语句;其他对象该字段无效。

query_sql

varchar(65536)

NO

对于 SQL 计划,字段为第一次加载计划时查询的原始 SQL 语句;对于匿名块字段,该字段为参数化后的匿名块语句。

special_params

varchar(4096)

NO

表示不可参数化的参数值。

param_infos

varchar(65536)

NO

表示参数化信息。

sys_vars

varchar(4096)

NO

影响缓存对象的系统变量的值。

plan_hash

bigint(20)

NO

SQL 计划的 Hash 值。

first_load_time

timestamp(6)

NO

第一次被加载时间。

schema_version

bigint(20)

NO

Schema 版本号。

merged_version

bigint(20)

NO

当前缓存的计划对应的合并版本号。

last_active_time

timestamp(6)

NO

上一次被执行时间。

avg_exe_usec

bigint(20)

NO

平均执行时间。

slowest_exe_time

timestamp(6)

NO

最慢执行时间戳。

slowest_exe_usec

bigint(20)

NO

最慢一次执行耗时。

slow_count

bigint(20)

NO

当前 SQL 计划成为慢查询的次数。

hit_count

bigint(20)

NO

被命中次数。

plan_size

bigint(20)

NO

缓存对象占用的内存大小。

executions

bigint(20)

NO

执行次数。

disk_reads

bigint(20)

NO

所有执行物理读次数。

direct_writes

bigint(20)

NO

所有执行物理写次数。

buffer_gets

bigint(20)

NO

所有执行逻辑读次数。

application_wait_time

bigint(20) unsigned

NO

所有 Application 类事件的总时间。

concurrency_wait_time

bigint(20) unsigned

NO

所有 Concurrency 类事件的总时间。

user_io_wait_time

bigint(20) unsigned

NO

所有 user_io 类事件的总时间。

rows_processed

bigint(20)

NO

所有 Schedule 类事件的时间。

elapsed_time

bigint(20) unsigned

NO

所有执行接收到请求到执行结束所消耗的时间。

cpu_time

bigint(20) unsigned

NO

所有执行消耗的 CPU 时间。

large_querys

bigint(20)

NO

被判断为大查询的次数。

delayed_large_querys

bigint(20)

NO

被判断为大查询且被丢入大查询队列的次数。

delayed_px_querys

bigint(20)

NO

并行查询被丢回队列重试的次数。

outline_version

bigint(20)

NO

Outline 版本号。

outline_id

bigint(20)

NO

Outline 的 ID,为 -1 表示不是通过绑定 Outline 生成的计划。

outline_data

varchar(65536)

NO

计划对应的 Outline 信息。

acs_sel_info

varchar(65536)

NO

当前 ACS 计划对应的选择率空间。

table_scan

tinyint(4)

NO

表示该查询是否为主键扫描。

evolution

tinyint(4)

NO

表示该执行计划是否在演进中。

evo_executions

bigint(20)

NO

演进次数。

evo_cpu_time

bigint(20) unsigned

NO

演进过程中总的执行 CPU 时间。

timeout_count

bigint(20)

NO

超时次数。

ps_stmt_id

bigint(20)

NO

PreparedStatement ID。

sessid

bigint(20) unsigned

NO

缓存对象所在的 Session ID。

temp_tables

varchar(65536)

NO

SQL 计划中包含的临时表表名,如果没有临时表,字段为空。

is_use_jit

tinyint(4)

NO

SQL 计划是否开启了表达式编译执行。

object_type

varchar(65536)

NO

缓存对象的类型:

  • SQL_PLAN

  • PROCEDURE

  • FUNCTION

  • PACKAGE

  • ANONYMOUS

hints_info

varchar(65536)

NO

SQL 计划的 Hint 信息。

hints_all_worked

tinyint(4)

NO

SQL 计划中的 Hint 是否都已经生效。

pl_schema_id

bigint(20) unsigned

NO

对于非匿名块的 PL 对象,字段为缓存对象的 Schema ID;对于匿名块,字段为 PreparedStatement ID;对于 SQL 计划,该字段无意义。

is_batched_multi_stmt

tinyint(4)

NO

表示是否为 Batched Multistmt 优化的计划。