Вы заметите, что оптимизатор делает выбор FULL TABLE SCAN в таблице EMP. Затем он использует ключ EMP.DEPT_NO для поиска подходящего значения в DEPT, потому что в этом случае выполнение поиска в 879 раз, по-видимому, быстрее (по крайней мере, по мнению оптимизатора), чем выполнение FULL TABLE SCAN для DEPT и выполнение 879 * 7 сравнений.
Для интереса вы можете проверить, как недавно статистика была собрана по этим таблицам, посмотрев на представления USER_TABLES или DBA_TABLES:
SELECT TABLE_NAME, LAST_ANALYZED
FROM USER_TABLES
WHERE TABLE_NAME IN ('EMP', 'DEPT')
И если вы хотите, вы можете собрать свободные sh Статистика в этих таблицах с использованием
BEGIN
DBMS_STATS.GATHER_TABLE_STATISTICS(OWNNAME => 'your_schema_name',
TABNAME => 'EMP',
CASCADE => TRUE);
DBMS_STATS.GATHER_TABLE_STATISTICS(OWNNAME => 'your_schema_name',
TABNAME => 'DEPT',
CASCADE => TRUE);
END;