Я новичок в Oracle (знаю немного базового SQL), но задача как-то назначена мне.
Моя задача - оптимизировать запрос.Он объединяет несколько больших таблиц (запрос занимает много времени) и возвращает результат на веб-страницу (можно использовать подкачку страниц).
Мой вопрос: в каком направлении мне следует искать?Было бы лучше, если ссылки могут быть предоставлены.
Вот некоторые детали:
Оптимизированные методы приняты
index on dayNum, timeNum, entityID columns
Количестворяды:
- time_seq: 100 000
- индикатор_набора: 50 000 000
- количество раз: 1000
Запрос:
select *
from time_seq seq,
(
select entityID,
dayNum,
timeNum,
sum(ind1) sum_ind1,
avg(ind2) avg_ind2,
max(ind3) max_ind3
from indicator_set
group by entityID, dayNum, timeNum
-- the dayNum timeNum are grouped to the time sequence standard
-- in time_seq table
) sum
where seq.entityID=sum.entityID
and seq.dayNum=sum.dayNum
and seq.timeNum=sum.timeNum
Таблица time_seq
entityID, dayNum, timeNum
--------------------------------
object1, 20110818, 220000
object1, 20110818, 223000
object1, 20100818, 230000
object1, 20110819, 220000
object1, 20110819, 223000
object1, 20100819, 230000
object2, 20110818, 220000
object2, 20110818, 223000
object2, 20100818, 230000
object2, 20110819, 220000
object2, 20110819, 223000
object2, 20100819, 230000
Таблица Indicator_set
entityID, dayNum, timeNUm, ind1, ind2, ind3
--------------------------------------------
object1, 20110818, 220000, 23,34,23
object1, 20110818, 220500, 23,54,543
object1, 20110818, 220530, 23,54,543
object1, 20110818, 220610, 23,54,543
object1, 20110818, 222900, 23,54,543
...
PS: извините, яне предоставили точный формат / детализацию таблицы и запроса.Просто слишком сложно.
ура ~