Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 OR в Oracle 8.1.7  [new]
ВМоисеев
Member

Откуда: Редкино
Сообщений: 2420
Коллеги, поясните пожалуйста дилетанту, почему
     SELECT ...   FROM (
       SELECT ...  FROM  ... ,
        (SELECT ... FROM ... WHERE ...) pv,
        (SELECT ... FROM ... WHERE ...) svyaz,
        (SELECT ... FROM ... WHERE ...) jdk
       WHERE ... AND jdk.nformuved = '11' ...       
       UNION 
       SELECT ...  FROM  ... ,
        (SELECT ... FROM ... WHERE ...) pv,
        (SELECT ... FROM ... WHERE ...) svyaz,
        (SELECT ... FROM ... WHERE ...) jdk
       WHERE ... AND jdk.nformuved = '12' ...       
       ) t
       ORDER BY t.numopzn;

выполняется 2 сек, а

       SELECT ...  FROM  ... ,
        (SELECT ... FROM ... WHERE ...) pv,
        (SELECT ... FROM ... WHERE ...) svyaz,
        (SELECT ... FROM ... WHERE ...) jdk
       WHERE ... AND (jdk.nformuved = '11'  OR  jdk.nformuved = '12') ...       
       ORDER BY numopzn;

выполняется 3.5 минуты
27 апр 18, 11:13    [21373004]     Ответить | Цитировать Сообщить модератору
 Re: OR в Oracle 8.1.7  [new]
123йй
Member

Откуда:
Сообщений: 1637
ВМоисеев,

что на это говорит план ?
27 апр 18, 11:17    [21373033]     Ответить | Цитировать Сообщить модератору
 Re: OR в Oracle 8.1.7  [new]
шК0ДЕР
Member

Откуда: Издалека долго
Сообщений: 1206
Какой тип у поля jdk.nformuved?
Есть ли на нем индекс?
Чувствую, что собака зарыта не в нем, а в иных предикатах
WHERE ... AND (jdk.nformuved = '11' OR jdk.nformuved = '12') ...
27 апр 18, 11:19    [21373042]     Ответить | Цитировать Сообщить модератору
 Re: OR в Oracle 8.1.7  [new]
AlexFF__|
Member

Откуда:
Сообщений: 2854
ВМоисеев,

У тебя не сработал OR-expansion.
27 апр 18, 11:26    [21373067]     Ответить | Цитировать Сообщить модератору
 Re: OR в Oracle 8.1.7  [new]
ВМоисеев
Member

Откуда: Редкино
Сообщений: 2420
>шК0ДЕР, сегодня, 11:19 [21373042]

>Какой тип у поля jdk.nformuved?
nformuved VARCHAR2(12)
27 апр 18, 11:38    [21373129]     Ответить | Цитировать Сообщить модератору
 Re: OR в Oracle 8.1.7  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18351
--+ use_concat
27 апр 18, 12:08    [21373311]     Ответить | Цитировать Сообщить модератору
 Re: OR в Oracle 8.1.7  [new]
ВМоисеев
Member

Откуда: Редкино
Сообщений: 2420
>AlexFF__|, сегодня, 11:26 [21373067]

>У тебя не сработал OR-expansion.
Это тоже не срабатывает
WHERE ... AND jdk.nformuved in ('11','12') ...
27 апр 18, 12:20    [21373379]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить