功能
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 计划缓存,字段表示计划的类型:
对于 PL 对象缓存,字段表示 PL 对象的类型:
|
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,为 |
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 | 缓存对象的类型:
|
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 优化的计划。 |