powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Подскажите зачем используются здесь хинты /*+ ordered */ и /*+ no_unnest */
6 сообщений из 6, страница 1 из 1
Подскажите зачем используются здесь хинты /*+ ordered */ и /*+ no_unnest */
    #39595172
x17.mstu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите зачем используются здесь хинты /*+ ordered */ и /*+ no_unnest */

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
INSERT INTO mfiles_xref_p1
   ( id_source,
     id_cconsol,
     id_cconsol_char,
     id_version,
     id_local_client,
     nm_cshort,
     nm_tsystem,
     id_csystem,
     id_csystemref,
     id_cp_source )
   SELECT /*+ ordered */
           f.id_source,
           x.cconsol,
           x.cconsol,
           0,
           NVL(x.csystemref,'^'),
           f.nm_short,
           f.nm_tsystem,
           f.id_csystem,
           x.csystemref,
           f.id_cp_source
   FROM txref x, feeder_systems_p1 f
   WHERE f.id_xref_entity = 'CP'
   AND   x.csystem = f.id_csystem
   AND   x.region IN ('SG')
   AND   f.id_cp_source = 'MSTS'
   AND  EXISTS (SELECT /*+ no_unnest */ * FROM counterparties c
                WHERE c.cpty_src = 'MSTS'
                AND c.cpty_id = x.cconsol
                AND c.seq_num = (SELECT MAX(c1.seq_num) FROM counterparties c1
                                 WHERE c1.cpty_src = c.cpty_src
                                 AND   c1.cpty_id = c.cpty_id)
                AND (c.cp_active = 'Y' OR (c.cp_active = 'N' AND c.enter_dt >= add_months(trunc(sysdate),-18)))
                )
...
Рейтинг: 0 / 0
Подскажите зачем используются здесь хинты /*+ ordered */ и /*+ no_unnest */
    #39595190
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Про хинты читай в доке. А нижеприведенное можно переписать одним групбаем без подзапроса с агрегацией: last + having.
x17.mstu
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
(SELECT /*+ no_unnest */ * FROM counterparties c
                WHERE c.cpty_src = 'MSTS'
                AND c.cpty_id = x.cconsol
                AND c.seq_num = (SELECT MAX(c1.seq_num) FROM counterparties c1
                                 WHERE c1.cpty_src = c.cpty_src
                                 AND   c1.cpty_id = c.cpty_id)
                AND (c.cp_active = 'Y' OR (c.cp_active = 'N' AND c.enter_dt >= add_months(trunc(sysdate),-18)))
                )
...
Рейтинг: 0 / 0
Подскажите зачем используются здесь хинты /*+ ordered */ и /*+ no_unnest */
    #39595466
x17.mstu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AmKad,

Прочитал доки, написано что такая констрцкция часто применяется чтобы получилось index range scan.
...
Рейтинг: 0 / 0
Подскажите зачем используются здесь хинты /*+ ordered */ и /*+ no_unnest */
    #39595483
x17.mstu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так?
...
Рейтинг: 0 / 0
Подскажите зачем используются здесь хинты /*+ ordered */ и /*+ no_unnest */
    #39595486
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x17.mstuПрочитал доки....Так?
откуда мы знаем какие доки ты читал ?
...
Рейтинг: 0 / 0
Подскажите зачем используются здесь хинты /*+ ordered */ и /*+ no_unnest */
    #39595555
но аннест
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
x17.mstuТак?
Не так.
no_unnest используется, чтобы оптимизатор не применил конкретную трансформацию запроса - не "раскрыл" подзапрос.
Почему именно разработчик решил, что так правильно - зависит от многочисленных деталей и не может достоверно быть установлено вне контекста конерктных системы и задачи.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Подскажите зачем используются здесь хинты /*+ ordered */ и /*+ no_unnest */
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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