powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Принудительное навязывание плана
8 сообщений из 8, страница 1 из 1
Принудительное навязывание плана
    #39687670
Wisky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть два запроса A и B, оба возвращают около 70-ти записей, первый отрабатывает за 30сек, второй 0.5 сек, но при их присоединении запрос отрабатывает за 6 минут.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
select A.*, B.*
 from (select
            from 
        )A inner join 
(select
            from 
        )B on A.key1=B.key1



Как принудительно указать последовательность формирования множеств?
...
Рейтинг: 0 / 0
Принудительное навязывание плана
    #39687680
Бельфя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plsql
1.
(select /*+precompute_subquery */ ... from ) A
...
Рейтинг: 0 / 0
Принудительное навязывание плана
    #39687681
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wisky,

План запроса посмотреть для начала. Что-то подсказывает, что там не просто from A.
...
Рейтинг: 0 / 0
Принудительное навязывание плана
    #39687692
Wisky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я и не говорю, что у меня там просто "from A", я хочу чтобы в начале сформировался A (агрегации), B (словарь), а потом их соединил, а он меняет план выполнения.
...
Рейтинг: 0 / 0
Принудительное навязывание плана
    #39687704
Фотография Щукина Анна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WiskyЕсть два запроса A и B, оба возвращают около 70-ти записей, первый отрабатывает за 30сек, второй 0.5 сек, но при их присоединении запрос отрабатывает за 6 минут.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
select A.*, B.*
 from (select
            from 
            where rownum >= 1
        )A inner join 
(select
            from 
            where rownum >= 1
        )B on A.key1=B.key1



Как принудительно указать последовательность формирования множеств?Попробуйте "материализовать" результаты встроенных представлений
...
Рейтинг: 0 / 0
Принудительное навязывание плана
    #39689065
bhr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bhr
Гость
Щукина АннаПопробуйте "материализовать" результаты встроенных представлений
глупый вопрос, а no_merge разве не для этого предназначен? материализация имхо более жесткая инструкция, требующая обращение к диску.
...
Рейтинг: 0 / 0
Принудительное навязывание плана
    #39689106
Фотография Щукина Анна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bhr,

а вы попробуйте, после нам расскажите...
особенно, с обращением к диску в случае с "материализацией" встроенного представления...

Подозреваю, вы попутали "материализацию" встроенного представления (выполнение запроса без "сливания" встроенного представления и проталкивания в него предикатов ) с материализацией (спулингом результата запроса во временную таблицу) WITH-кляузы.
...
Рейтинг: 0 / 0
Принудительное навязывание плана
    #39689223
shurka22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
WiskyКак принудительно указать последовательность формирования множеств?
В разных ситуациях мне помогали разные рецепты:
1) конструкция with
2) хинты:
precompute_subquery
no_merge use_nl()
ordered use_nl()
driving_site() - для работы через дб-линк
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Принудительное навязывание плана
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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