Здравствуйте.
Мне требуется помощь с уменьшением времени выполнения запроса.
В Базе Данных имеется 2 таблицы - tracking и area;
tracking содержит GPS данные. (idresource (number), x (number), y(number), crdate (date) )
area содержит полигоны (areaname(varchar2), polygonpoints(spatial) )
Каждые 5 минут требуется выяснять в каком полигоне находится ресурс.
Для этого я выполняю следующий sql запрос:
SELECT T.IDRESOURCE, A.AREANAME
FROM TRACKING T, AREA A
WHERE SDO_RELATE(A.POLYGONPOINTS,
MDSYS.SDO_GEOMETRY(2001,NULL,
MDSYS.SDO_POINT_TYPE(T.X,T.Y,NULL),
NULL, NULL), 'mask=ANYINTERACT'
) = 'TRUE'
В среднем из tracking выбирается 1200 записей, а из AREA 60 полигонов стандартно.
После некоторого наблюдения я выяснил, что запрос использует только 1 cpu / 2 cores.
Время выполнения запроса ~3 минуты.
Как сделать чтобы запрос работал со всеми процессорами на сервере.
Заранее спасибо.