"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
> ЗЫ
> что-то везет мне с интеллектуальными изменениями оригинальных запросов :))
:)
--
Хорсун Влад
--~--~---------~--~----~------------~-------~--~----~
-~----------~----~----~----~------~----~------~--~---