powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / push_pred
3 сообщений из 3, страница 1 из 1
push_pred
    #39718042
ffzx1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
select /*+ push_pred (d)*/ *
 from dual x
 left join 
 (select /*+ no_merge*/ dummy from dual) d 
 on x.dummy = d.dummy
 where x.dummy in (select x from test)

------------------------------------------------------------------------------------
| Id  | Operation               | Name     | Rows  | Bytes | Cost (%CPU)| Time     |
------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT        |          |     1 |     6 |     6   (0)| 00:00:01 |
|   1 |  NESTED LOOPS OUTER     |          |     1 |     6 |     6   (0)| 00:00:01 |
|   2 |   NESTED LOOPS SEMI     |          |     1 |     4 |     4   (0)| 00:00:01 |
|   3 |    TABLE ACCESS FULL    | DUAL     |     1 |     2 |     2   (0)| 00:00:01 |
|*  4 |    VIEW                 | VW_NSO_1 |     4 |     8 |     2   (0)| 00:00:01 |
|   5 |     TABLE ACCESS FULL   | TEST     |     4 |     8 |     2   (0)| 00:00:01 |
|   6 |   VIEW PUSHED PREDICATE |          |     1 |     2 |     2   (0)| 00:00:01 |
|*  7 |    TABLE ACCESS FULL    | DUAL     |     1 |     2 |     2   (0)| 00:00:01 |


Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
 select /*+ push_pred (d)*/ *
 from dual x
 left join 
 (select /*+ no_merge*/ dummy from dual) d 
 on x.dummy = d.dummy
 where x.dummy in ( select column_value from table(ORA_MINING_VARCHAR2_NT('X')))
-----------------------------------------------------------------------------------------------------
| Id  | Operation                                | Name     | Rows  | Bytes | Cost (%CPU)| Time     |
-----------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                         |          |     1 |  2006 |    33   (0)| 00:00:01 |
|   1 |  NESTED LOOPS OUTER                      |          |     1 |  2006 |    33   (0)| 00:00:01 |
|   2 |   NESTED LOOPS SEMI                      |          |     1 |  2004 |    31   (0)| 00:00:01 |
|   3 |    TABLE ACCESS FULL                     | DUAL     |     1 |     2 |     2   (0)| 00:00:01 |
|*  4 |    VIEW                                  | VW_NSO_1 |  8168 |    15M|    29   (0)| 00:00:01 |
|   5 |     COLLECTION ITERATOR CONSTRUCTOR FETCH|          |  8168 | 16336 |    29   (0)| 00:00:01 |
|*  6 |   VIEW                                   |          |     1 |     2 |     2   (0)| 00:00:01 |
|   7 |    TABLE ACCESS FULL                     | DUAL     |     1 |     2 |     2   (0)| 00:00:01 |
-----------------------------------------------------------------------------------------------------


Почему во втором случае PUSH_PRED не работает?
Реальный запрос не хинтуется, но при замене подзапроса из GTT на подзапрос из NT, pushed predicate аналогично отваливается.
...
Рейтинг: 0 / 0
push_pred
    #39718046
ffzx1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Версия 12.2.
...
Рейтинг: 0 / 0
push_pred
    #39718518
ffzx1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кто-нибудь сталкивался? Понятно, что можно использовать гтт, но все равно интересно, можно ли переписать второй запрос так, чтобы push_pred заработал.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / push_pred
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]