У меня есть запрос, который создает вход для pgRouting
pgr_drivingDistance
функции:PostgreSQL - PostGIS оптимизации запросов
CREATE TEMP TABLE tmp_edge AS
SELECT
e."Id" as id,
e."Source" as source,
e."Target" as target,
e."Length"/(1000*LEAST("Speed", "SpeedMin")/60) as cost
FROM "Edge" e,
"SpeedLimit" sl
WHERE sl."VehicleKindId" = 1
AND e.the_geom &&
ST_MakeEnvelope(
x1-(1000*GREATEST("Speed", "SpeedMax")/60)*13,
y1-(1000*GREATEST("Speed", "SpeedMax")/60)*13,
x1+(1000*GREATEST("Speed", "SpeedMax")/60)*13,
y1+(1000*GREATEST("Speed", "SpeedMax")/60)*13, 3857)
AND sl."RoadCategoryId" = e."CategoryId";
В статье WHERE
я вычислить то же самое, в несколько раз, чтобы получить ограничивающего координаты окно.
Я попытался выполнить вычисления в части FROM
и использовать псевдоним для вычисленного столбца, но затем все время выполнения увеличивается в два раза.
Edge
стол довольно большой (1 milion) и SpeedLimit
- несколько дюжина запись.
Есть ли способ улучшить этот запрос?
Где находятся x1, y1, входящие в этот запрос. Что объясняет шоу? –