производительность в базе данных оракула - PullRequest
0 голосов
/ 18 мая 2018

У меня есть таблица с именами автомобилей, в которой есть три столбца: 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...