On 7 май, 22:22, Dmitry Yemanov <[EMAIL PROTECTED]> wrote:
> Павел Радченко wrote:
> > Не могу заставить использовать нужный индекс запрос с IN (select ...)
> > даже от плана отплевывается.  :(
>
> Никогда не говори ни запрос, ни план. Авось кто догадается.
>
> --
> Дмитрий Еманов

Да я так думал что вариантов особо и нету звиняюсь если ошибся.

create domain id integer default 0 not null;
create domain name varchar(40) default '' not null;

create table Dict1
(
id id,
name name,
constraint Dict1_prim primary key(id),
constraint Dict1_un unique(name)
);
create table Data
(
id id,
Dict1Id id,
constraint Data_prim primary key (id),
constraint Data_Dict1_fk foreign key (Dict1Id) references Dict1(id)
);

select data.id from data
  where data.dict1id =
    (select dict1.id from dict1 where dict1.name starting with 'dd')
PLAN (DATA INDEX (DATA_DICT1_FK))

а вот тут неувязка странная

select data.id from data
  where data.dict1id IN
    (select dict1.id from dict1 where dict1.name starting with 'dd')
--PLAN (DATA INDEX (DATA_DICT1_FK))--и с этим планом FB несогласен

Ответить