On Sun, 13 Jan 2008 13:39:53 +0300, St. Alex <[EMAIL PROTECTED]> wrote:
> select *
> from schet s
> where
> s.id_client in
> (
> select id_client
> from executors e
> where e. id_sotrudnik=:ID_SOTRUDNIK
> ), который на старой версии отрабатывал порядка миллисекунд, на 2.0 это
> занимало около 3 минут... Прищлось изголятся с созданием промежуточных
> искусственных таблиц и т.п.
Какие ещё промежуточные таблицы?!
На скруле, да и тут по-моему, уже упоминали, что IN (SELECT...) в 2.х работает
как derived, а потому может круто тормознуть.
Всего-то нужно было правильно написать:
select *
from schet s
where exists
(
select *
from executors
where id_sotrudnik = :ID_SOTRUDNIK and id_cliend = s.id_client
)
--
Сергей Смирнов.