我有一个很长时间运行的查询,大约16秒。这是:
SELECT
n.id as id1
, n2.id as id2
from
nodesWays n
, nodesWaysTag w
, tag t
, nodesWays n2
, nodesWaysTag w2
, tag t2
where
SDO_RELATE(n.shape, n2.shape, 'mask=ANYINTERACT') = 'TRUE'
and n.id = w.geoid
and w.tagid = t.id
and t.key = 'waterway'
and t.value = 'river'
and n2.id = w2.geoid
and w2.tagid = t2.id
and t2.key = 'highway'
and t2.value = 'tertiary';
此查询是空间自联接。所有与空间有关的河流和街道都应归还。 要获取标记,如果对象是河流或街道,则通过nodesWays连接,则需要nodesWaysTag和tag-Tables,因为它是m:n-relationship。
我的问题是查询有时候没有完成,当我打断它时(因为它需要太多时间),SQL Developer会显示"任务abgebrochen in 0 Sekunden" (任务在0秒内中断)。我不知道为什么这个任务有时会完美运行,有时候不会给出结果。
当我不打断它时,查询会结束,但需要很长时间(300秒)。
如果有人知道为什么查询有时会在16秒内完成,有时需要300秒,我很高兴听到。
问候,安德烈