Hello, Алексей!

Кравченко Алексей wrote:

select   dd.data,  paym.cnt
from
  enum_days('2007-01-01','2007-02-01') dd
left join (select crdate dd, sum(cnt) cnt from sum_operations o group by crdate) paym
    on paym.dd=dd.data
PLAN JOIN (ENUM_DAYS NATURAL, PAYM O ORDER PK_SUM_OPERATIONS_CRDATE)

тут тебе еще повезло, что select crdate выполняется один раз,
и едет по записям в порядке индекса. хотя насчет 1 раза - не уверен.
вполне может быть что столько раз, сколько процедура возвращает
записей. отсюда и избыточный reads, и fetches.

интересно что right join работает на порядок быстрей - почти незаметно... (план обратный)

да понятно почему обратный. и понятно почему быстрее.

кто чего скажет? чего я не понимаю

в джойнах думаешь понимаешь? :-)
www.ibase.ru/devinfo/joins.htm

--
Dmitri Kouzmenko, www.ibase.ru, (495) 953-13-34


Ответить