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

Откуда: Железные острова
Сообщений: 180
доброго дня,

есть вью:

create or replace view v_test
select t.id,
(select ... from ...) s
from test t


и запрос:

select * from v_test where s between 1 and 3.5 and id = 3


может кто знает, какой хинт стоит добавить, чтобы в условие
where s between 1 and 3.5 and id = 3
s вычислялся для
id = 3
и потом подставлялся в условие, а не чтобы подтягилось
(select ... from ...) s
?
2 ноя 18, 10:17    [21722205]     Ответить | Цитировать Сообщить модератору
 Re: Виснет запрос  [new]
Stax
Member

Откуда: Ukraine,Lviv
Сообщений: 2758
cobalt_frog,

гляньте
PUSH_PRED

The PUSH_PRED hint forces pushing of a join predicate into the view.

https://docs.oracle.com/cd/B12037_01/server.101/b10752/hintsref.htm#6174

.....
stax
2 ноя 18, 10:27    [21722223]     Ответить | Цитировать Сообщить модератору
 Re: Виснет запрос  [new]
cobalt_frog
Member

Откуда: Железные острова
Сообщений: 180
Stax
cobalt_frog,

гляньте
PUSH_PRED

The PUSH_PRED hint forces pushing of a join predicate into the view.

https://docs.oracle.com/cd/B12037_01/server.101/b10752/hintsref.htm#6174

.....
stax


спасибо большое.
2 ноя 18, 11:09    [21722278]     Ответить | Цитировать Сообщить модератору
 Re: Виснет запрос  [new]
cobalt_frog
Member

Откуда: Железные острова
Сообщений: 180
PUSH_PRED же нужен когда джойнится подзапрос, а не выступает в качестве поля. Как быть в этом случает?
6 ноя 18, 17:22    [21725594]     Ответить | Цитировать Сообщить модератору
 Re: Виснет запрос  [new]
cobalt_frog
Member

Откуда: Железные острова
Сообщений: 180
create or replace view v_test
select t.id,
(select /*+ NO_PUSH_SUBQ */ ... from ...) s
from test t

?
6 ноя 18, 17:28    [21725603]     Ответить | Цитировать Сообщить модератору
 Re: Виснет запрос  [new]
cobalt_frog
Member

Откуда: Железные острова
Сообщений: 180
есть стопроцентный способ добиться чтобы в фильтре использовался не сам подзапрос, а уже вычисленное значение?
7 ноя 18, 09:11    [21726101]     Ответить | Цитировать Сообщить модератору
 Re: Виснет запрос  [new]
Elic
Member

Откуда:
Сообщений: 29976
cobalt_frog
есть стопроцентный способ добиться чтобы в фильтре использовался не сам подзапрос, а уже вычисленное значение?
7 ноя 18, 09:19    [21726108]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить