oralce在遇到多表關聯(lián)的時候,經(jīng)常會遇到sql執(zhí)行很慢的情況,分析 sql的執(zhí)行計劃發(fā)現(xiàn)表確實走的是索引路徑,此時你就要看看使用的表是不是很久沒有收集過統(tǒng)計信息了,需要執(zhí)行一下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;