SQL语句SOMETIMES需要很多时间

时间:2014-07-08 12:22:06

标签: sql oracle join spatial

我有一个很长时间运行的查询,大约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秒,我很高兴听到。

问候,安德烈

0 个答案:

没有答案