oceanbase第一次查询很慢

【 使用环境 】 or 测试环境
【 OB or 其他组件 】
【 使用版本 】 4.2.1
【问题描述】相同的sql,第一次查询特别慢,后面再查询就很快,是什么原因,如何排查?
执行计划

|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|

|0 |SCALAR GROUP BY | |1 |78238107 |
|1 |└─SUBPLAN SCAN |table_count |14408468|77976968 |
|2 | └─HASH DISTINCT | |14408468|77938830 |
|3 | └─HASH OUTER JOIN | |14408468|70845470 |
|4 | ├─PX COORDINATOR | |9890692 |15962645 |
|5 | │ └─EXCHANGE OUT DISTR |:EX10000 |9890692 |11354672 |
|6 | │ └─PX PARTITION ITERATOR| |9890692 |1012146 |
|7 | │ └─TABLE FULL SCAN |hpk_outpatient_record|9890692 |1012146 |
|8 | └─PX COORDINATOR | |10200000|43454488 |
|9 | └─EXCHANGE OUT DISTR |:EX20000 |10200000|30409418 |
|10| └─PX PARTITION ITERATOR| |10200000|1070984 |
|11| └─TABLE FULL SCAN |hpk_patient_base_info|10200000|1070984 |

Outputs & filters:

0 - output([T_FUN_COUNT()]), filter(nil), rowset=256
group(nil), agg_func([T_FUN_COUNT(
)])
1 - output(nil), filter(nil), rowset=256
access(nil)
2 - output([hpk_patient_base_info.pat_base_id], [hpk_patient_base_info.source_patient_id], [hpk_patient_base_info.patient_name], [hpk_patient_base_info.sex_name],
[hpk_patient_base_info.disease], [hpk_patient_base_info.patient_id], [hpk_patient_base_info.create_time]), filter(nil), rowset=256
distinct([hpk_patient_base_info.pat_base_id], [hpk_patient_base_info.source_patient_id], [hpk_patient_base_info.patient_name], [hpk_patient_base_info.sex_name],
[hpk_patient_base_info.disease], [hpk_patient_base_info.patient_id], [hpk_patient_base_info.create_time])
3 - output([hpk_patient_base_info.pat_base_id], [hpk_patient_base_info.source_patient_id], [hpk_patient_base_info.patient_name], [hpk_patient_base_info.sex_name],
[hpk_patient_base_info.disease], [hpk_patient_base_info.patient_id], [hpk_patient_base_info.create_time]), filter(nil), rowset=256
equal_conds([hpk_patient_base_info.source_patient_id = hpk_outpatient_record.source_patient_id], [hpk_patient_base_info.source_org_id = hpk_outpatient_record.source_org_id]),
other_conds(nil)
4 - output([hpk_outpatient_record.source_patient_id], [hpk_outpatient_record.source_org_id]), filter(nil), rowset=256
5 - output([hpk_outpatient_record.source_patient_id], [hpk_outpatient_record.source_org_id]), filter(nil), rowset=256
dop=1
6 - output([hpk_outpatient_record.source_patient_id], [hpk_outpatient_record.source_org_id]), filter(nil), rowset=256
force partition granule
7 - output([hpk_outpatient_record.source_patient_id], [hpk_outpatient_record.source_org_id]), filter([(T_OP_LIKE, hpk_outpatient_record.sex_name, concat(’%’,
‘男’, ‘%’), ‘\’)]), rowset=256
access([hpk_outpatient_record.source_patient_id], [hpk_outpatient_record.source_org_id], [hpk_outpatient_record.sex_name]), partitions(p[0-2])
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([hpk_outpatient_record.reg_id]), range(MIN ; MAX)always true
8 - output([hpk_patient_base_info.pat_base_id], [hpk_patient_base_info.source_patient_id], [hpk_patient_base_info.patient_name], [hpk_patient_base_info.sex_name],
[hpk_patient_base_info.disease], [hpk_patient_base_info.patient_id], [hpk_patient_base_info.create_time], [hpk_patient_base_info.source_org_id]), filter(nil), rowset=256
9 - output([hpk_patient_base_info.pat_base_id], [hpk_patient_base_info.source_patient_id], [hpk_patient_base_info.patient_name], [hpk_patient_base_info.sex_name],
[hpk_patient_base_info.disease], [hpk_patient_base_info.patient_id], [hpk_patient_base_info.create_time], [hpk_patient_base_info.source_org_id]), filter(nil), rowset=256
dop=1
10 - output([hpk_patient_base_info.pat_base_id], [hpk_patient_base_info.source_patient_id], [hpk_patient_base_info.source_org_id], [hpk_patient_base_info.patient_name],
[hpk_patient_base_info.sex_name], [hpk_patient_base_info.disease], [hpk_patient_base_info.patient_id], [hpk_patient_base_info.create_time]), filter(nil), rowset=256
force partition granule
11 - output([hpk_patient_base_info.pat_base_id], [hpk_patient_base_info.source_patient_id], [hpk_patient_base_info.source_org_id], [hpk_patient_base_info.patient_name],
[hpk_patient_base_info.sex_name], [hpk_patient_base_info.disease], [hpk_patient_base_info.patient_id], [hpk_patient_base_info.create_time]), filter(nil), rowset=256
access([hpk_patient_base_info.pat_base_id], [hpk_patient_base_info.source_patient_id], [hpk_patient_base_info.source_org_id], [hpk_patient_base_info.patient_name],
[hpk_patient_base_info.sex_name], [hpk_patient_base_info.disease], [hpk_patient_base_info.patient_id], [hpk_patient_base_info.create_time]), partitions(p[0-2])
is_index_back=false, is_global_index=false,
range_key([hpk_patient_base_info.pat_base_id]), range(MIN ; MAX)always true

有可能获取执行计划耗时略大,看看第一次执行时 v$ob_sql_aduit.get_plan_time