Oracle查询仅表分析后首次执行快,后续变慢求技术协助
Oracle查询执行过慢问题排查求助
我正在使用Oracle数据库,遇到查询执行过慢的问题,单次执行耗时近6分钟。
为解决该问题,我分析了查询涉及的所有表,但发现刚完成表分析后首次执行查询速度很快,后续执行则显著变慢,且两种场景下的执行计划(explain plan)存在差异。
我无法定位问题根源,恳请协助排查。
已执行的操作及语句
表分析语句
BEGIN DBMS_STATS.GATHER_TABLE_STATS ( OwnName => 'USER2', TabName => 'Name of specific tables used in this query', Estimate_Percent => 0, Method_Opt => 'FOR ALL COLUMNS SIZE 1', Degree => 4, Cascade => TRUE, No_Invalidate => FALSE); END;
表分析状态检查语句
select table_name, last_analyzed from dba_tables where table_name in ('QM_TABLE_NAME1', 'ETC');
自动统计收集任务状态检查
执行语句:
select dbms_stats.get_prefs('AUTO_TASK_STATUS') from dual;
输出结果:
dbms_stats.get_prefs('AUTO_TASK_STATUS') ---------------------------------------- OFF
执行计划生成语句
select /*+ gather_plan_statistics */ ... select * from table(dbms_xplan.display_cursor(9rc0qbr9a5h7a,0,format => 'adaptive allstats last')); select * from table(dbms_xplan.display_cursor(9rc0qbr9a5h7a,1,format => 'adaptive allstats last'));
慢查询执行计划提示信息
Note
- 此语句使用了统计反馈
内容的提问来源于stack exchange,提问作者Rudra
相关产品推荐
相关产品推荐

