Ваш подзапрос фактически выглядит как не , соотнесенный с внешним запросом.Таким образом, Oracle, скорее всего, выполнит его один раз и кеширует результаты для последующего использования.Я могу предложить следующий индекс:
CREATE INDEX idx ON grirmain (gridate, girano, chksuer);
Этот индекс должен, по крайней мере, позволить Oracle быстро обработать предложение WHERE
и, кроме того, он охватывает два столбца в предложении SELECT
.Как уже упоминалось, некоррелированный подзапрос должен быть выполнен один раз, а затем кэширован.
Что касается предложения ORDER BY
, индекс, вероятно, не поможет, и Oracle придется вручную сортировать.