"Nikolay Ponomarenko" ...

>  HV>>>     что возвращает select count(*) from objects where id_obj<3
>  ??>> 2
>  HV>     Сорри, обманул я тебя : не id_obj < 3, а p_1 < 3 конечно
>
> ага, вот оно что - там действительно, порядка половины значений таблицы,
> рендом работал по всему интеджеру, и в + и в -.
> select count(*) from objects o where o.p_1<3 - начал также откушивать
> память.
> Я так понимаю ситуацию спасли бы гистограммы - натурал здесь много
> предпочтительнее.

    Думаю - да, помогли бы

> >> А вопрос собственнов в чем - на что сервер тратит память, когда идет по
> > первому(неоптимальному) плану?
> >На битмап для p_1 < 3?
>
> Судя по ответу на вопрос Влада, да :)

    Ну, вот и разобрались :)

> А создаваться он может только в памяти и как сортировки на винт не кладется,
> так?

    Да, это стр-ра живёт исключительно в памяти.
Кстати, в PG что-то делали чтобы этого избежать

> >>    То самое distributing equalities ? :)
> >> o1.p_1=o.id_obj  &&  o.id_obj<3  => o1.p_1 < 3
> >Ты знал! :-) Торможу с утра.
>
> Иначе говоря внутри запрос превращается, превращается в...?

    Т.к. джойн внутренний, то имеем все 3 условия. Что-то типа

select o.*
  from objects o join objects o1
    on o1.p_1   = o.id_obj
   and o.id_obj < 3
   and o1.p_1   < 3

или

select o.*
  from objects o, objects o1
 where o1.p_1   = o.id_obj
   and o.id_obj < 3
   and o1.p_1   < 3

> ЗЫ
> что-то везет мне с интеллектуальными изменениями оригинальных запросов :))

    :)

-- 
Хорсун Влад



--~--~---------~--~----~------------~-------~--~----~
-~----------~----~----~----~------~----~------~--~---

Ответить