RUS  ENG 

Оптимизация SQL запроса. Проверка пересечения с временной буферной зоной.

Страницы: 1
RSS
Оптимизация SQL запроса. Проверка пересечения с временной буферной зоной.
 
Добрый день.

Подскажите, есть ли возможность оптимизировать (переписать) представленный запрос для ускорения получения ответа?
При предварительном выборе 1 объекта в слое t1 время ответа составляет около 15 секунд, при выборе 2 объектов около 40-45 секунд.

SEL ECT t1.sys, t2.sys
fr om [Рабочий] as t1,
(SEL ECT t2.geometry.stbuffer(20) as a, t2.sys
FR OM [Потребители] as t2
where t2.geometry.selected()=1) AS t2
where t1.typeid = 3
and t1.geometry.stwithin(t2.a)
 
Cвятослав, можно запрос упростить так:

SELECT t1.Sys, t2.Sys
FROM [Рабочий] AS t1, [Потребители] AS t2
WHERE t2.geometry.selected()=1
AND t1.typeid = 3
AND t1.geometry.STWithin(t2.geometry.STBuffer(20));

Попробуйте.

Вообще, мы посмотрим, что можно ускорить внутри движка.
 
Дмитрий Озеров,
Цитата
написал:
Cвятослав, можно запрос упростить так:

SEL ECT t1.Sys, t2.Sys
FR OM [Рабочий] AS t1, [Потребители] AS t2
WHERE t2.geometry.selected()=1
AND t1.typeid = 3
AND t1.geometry.STWithin(t2.geometry.STBuffer(20));

Попробуйте.

Вообще, мы посмотрим, что можно ускорить внутри движка.
Это был первый вариант запроса и по какой-то причине он даже один объект обрабатывает более 60 секунд.
В связи с этим запрос геометрии буферной зоны и был перенесён в подзапрос.
 
Cвятослав, проверьте версию ZuluServer/ZuluGIS, мы в сентябре делали оптимизацию в пространственных функциях. Если Ваша версия старее, то попробуйте на свежей версии.
Страницы: 1