У меня есть таблица с именами автомобилей, в которой есть три столбца: car_id, car_name, car_model. Car_id - это первичный ключ.
Есть две базы данных, которые содержат одну и ту же таблицу.
В однойбаза данных: таблица car имеет 8700455 записей. В другой базе данных: таблица car имеет 9036113 записей. Итак, во второй базе данных есть еще 335658 записей
. Теперь я запускаю запрос в обеих базах данных:
SELECT objs1_defaultNCObjectMapping.car_id id
FROM cars objs1_defaultNCObjectMapping
WHERE UPPER(objs1_defaultNCObjectMapping.car_name) LIKE '%STARTWTH100_T0_00000%' ESCAPE '\';
В обеих базах данных я получаю один и тот же результат в 100 строк.
Но проблема со временем выполнения, база данных с большим количеством строк занимает больше времени.
Explain plan where performance is good[Smaller Table]
--------------
LEVEL, PLAN, ROWS, COST, PREDICATES
1 SELECT STATEMENT (OPTIMIZER=ALL_ROWS) 25000000 112744 [NULL]
2 INDEX (FULL SCAN) "XIF34NC_OBJECTS" 25000000 112744 filter(UPPER("NAME") LIKE '%STARTWTH100\_T0\_00000%' ESCAPE '\' AND UPPER("NAME") IS NOT NULL)
Объясните план, где производительностьэто плохо [Большая таблица]
LEVEL, PLAN, ROWS, COST, PREDICATES
1 SELECT STATEMENT (OPTIMIZER=ALL_ROWS) 25000000 112875 [NULL]
2 INDEX (FULL SCAN) "XIF34NC_OBJECTS" 25000000 112875 filter(UPPER("NAME") LIKE '%STARTWTH100\_T0\_00000%' ESCAPE '\' AND UPPER("NAME") IS NOT NULL)