今天一新装系统(版本11.2.0.4.3)查询dba_jobs_running视图缓慢。但加hint /*+rule*/ 正常。
通过跟踪10046 trace发现,主要慢在对X$KSQRS进行全表扫,并且执行走nl。查看别的系统的发现执行计划走HASH。因此判断统计信息存在问题。
收集统计信息如下:
SQL> exec dbms_stats.gather_fixed_objects_stats(NO_INVALIDATE=>false);
PL/SQL procedure successfully completed.
收集后恢复正常。
注:
gather_system_stats->针cpu/io
通过跟踪10046 trace发现,主要慢在对X$KSQRS进行全表扫,并且执行走nl。查看别的系统的发现执行计划走HASH。因此判断统计信息存在问题。
收集统计信息如下:
SQL> exec dbms_stats.gather_fixed_objects_stats(NO_INVALIDATE=>false);
PL/SQL procedure successfully completed.
收集后恢复正常。
注:
gather_dictionary_stats--> 针对table$这样的表,存在于物理数据库中~ gather_fixed_objects_stats--> 针对x$table这样的内存表,不存在物理数据库中,只在内存中存在,动态试图的基表 |
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29446986/viewspace-1267081/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29446986/viewspace-1267081/