У меня есть следующие таблицы:
1) date_table_dim
2) clock_table_dim
3) onlinegpspoint: содержит нашу основную информацию для отчетов olap.
А также есть такой sql-запрос:
SELECT
date_table_dim.day_id day_id,
clock_table_dim.hour_id hour_id
FROM onlinegpspoint olgps
INNER JOIN date_table_dim
ON (
olgps.occurance_time >= to_date('2014-03-01 00:00:00', 'yyyy-mm-dd hh24:mi:ss')
AND olgps.occurance_time >= date_table_dim.day_id
AND olgps.occurance_time < date_table_dim.day_id + 1
)
INNER JOIN clock_table_dim
ON ( clock_table_dim.hour_id <= TO_NUMBER(TO_CHAR(occurance_time, 'HH24'))
AND clock_table_dim.hour_id > TO_NUMBER(TO_CHAR((occurance_time - 1/24), 'HH24') ))
GROUP BY
date_table_dim.day_id,
clock_table_dim.hour_id ;
Моя проблема в том, что этот запрос выполняется слишком долго. Какие действия можно предпринять для повышения производительности выполнения этого запроса?
РЕДАКТИРОВАТЬ
На сайте onlinegpspoint есть индекс для возникновения_времени. По этому запросу я хочу получить некоторую информацию об Olap за 1 час. (Этот запрос является своего рода сводкой моего запроса таблицы фактов.)