2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Как работает подзапрос в Oracle 10?
Сообщение05.01.2011, 13:55 
Написал запрос вида:
Код:
select
  decode(PAR,0,A1,B1) as F1,
  ...
  decode(PAR,0,An,Bn) as Fn,
  PAR
from
  (select
    nvl((select 1 from TBL1 where conditions and rownum = 1),0) as PAR
  from TABLE t
  where t.ID = :ID
  )

Посмотрел план выполнения. В плане выполнения $n+1$ раз написано:
Код:
COUNT STOPKEY
TABLE ACCESS BY INDEX ROWID
INDEX RANGE SCAN

Работает-то быстро, но меня сам результат очень смутил - неужели Оракл $n+1$ раз выполняет подзапрос вместо того, чтобы выполнить его 1 раз и потом использовать результат его вычисления??? :shock:
В гугле что-то ничего не обнаружил. Народ на работе не знает...

 
 
 [ 1 сообщение ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group