oralce在遇到多表关联的时候,经常会遇到sql执行很慢的情况,分析 sql的执行计划发现表确实走的是索引路径,此时你就要看看使用的表是不是很久没有收集过统计信息了,需要执行一下oracle表分析
查看当前用户下表分析情况
select num_rows, blocks, last_analyzed from user_tables where table_name = 'T_SAMPLE';
可以查看其他用户下表分析情况
select num_rows, blocks, last_analyzed from all_tables where table_name = 'T_SAMPLE';
表分析语句,修改对应的oracle用户和表名。
BEGIN
DBMS_STATS.GATHER_TABLE_STATS(OWNNAME => '用户',
TABNAME => 'T_SAMPLE',
ESTIMATE_PERCENT => 100,
NO_INVALIDATE => FALSE, --立马生效
DEGREE => 8,
CASCADE => TRUE);
END;