powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Пропихнуть предикат в группировку
25 сообщений из 29, страница 1 из 2
Пропихнуть предикат в группировку
    #39517467
Фотография DВА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть запрос типа

select
f1,
f2,
f3
from
view_1 t1,
view_2 t2
where
t1.id=t2.id
and t1.f4=value


view_1, view_2 сложные каскадные вьюшки

В исходном запросе предикат t1.f4=value всеми правдами и неправдами удается протолкнуть до исходной таблицы, но вот стоит сделать группировку по тем же данным

select
f1,
f2,
sum(f3)
from
view_1 t1,
view_2 t2
where
t1.id=t2.id
and t1.f4=value
group by f1, f2

как весь план улетает к чертям в фулсканы
Как бы извратиться ?
Версия 10.2
...
Рейтинг: 0 / 0
Пропихнуть предикат в группировку
    #39517482
Фотография AlexFF__|
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DВАсложные каскадные вьюшки
имеют в себе ansi join?
...
Рейтинг: 0 / 0
Пропихнуть предикат в группировку
    #39517488
MaximaXXL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DВА,

Может так попробовать?

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
select distinct
f1,
f2,
sum(f3) over (partition by f1, f2)
from 
view_1 t1,
view_2 t2
where 
t1.id=t2.id
and t1.f4=value
...
Рейтинг: 0 / 0
Пропихнуть предикат в группировку
    #39517509
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DВА,
А что если:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
select 
f1,
f2,
sum(f3)
from 
view_1 t1,
view_2 t2
where 
t1.id=t2.id
and t1.f4=value
group by f1, f2,t1.f4
/
...
Рейтинг: 0 / 0
Пропихнуть предикат в группировку
    #39517522
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
select f1, f2, sum(f3), max(rn)
from
   (select 
    f1,
    f2,
    f3,
    rownum rn
    from 
    view_1 t1,
    view_2 t2
    where 
    t1.id=t2.id
    and t1.f4=value
   )
group by f1, f2;
...
Рейтинг: 0 / 0
Пропихнуть предикат в группировку
    #39517533
Фотография DВА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
была бы возможность переписать запрос я б его в with завернула и никаких проблем :)
а так только план подобрать ((
...
Рейтинг: 0 / 0
Пропихнуть предикат в группировку
    #39517537
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DВА,

Т.е. запрос менять нельзя - вопрос строго в пропихивании предиката? А получить план для варианта AmKad и прибить аутлайнами (не помню, что с ними в десятке) - реально?
...
Рейтинг: 0 / 0
Пропихнуть предикат в группировку
    #39517544
Фотография DВА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
envDВА,

Т.е. запрос менять нельзя - вопрос строго в пропихивании предиката? А получить план для варианта AmKad и прибить аутлайнами (не помню, что с ними в десятке) - реально?

AmKad-кого типа с оберткой не прижился, попробую еще с over partition
с добовлением уровня группировки по предикату все равно съезжает в фулскан
...
Рейтинг: 0 / 0
Пропихнуть предикат в группировку
    #39517546
Фотография DВА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexFF__|,
не, все на +
...
Рейтинг: 0 / 0
Пропихнуть предикат в группировку
    #39517552
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot DВА]envAmKad-кого типа с оберткой не прижился, попробую еще с over partition
с добовлением уровня группировки по предикату все равно съезжает в фулсканДобавление count-шага посредством rownum не спасает?
...
Рейтинг: 0 / 0
Пропихнуть предикат в группировку
    #39517557
Vint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DВА,
план запроса с группировкой и без отличается только частью которая в группировке? или вообще другой план? если только частью, то может попробовать как то вклинить часть аутлана? когда то Деев про такое рассказывал. правда я уже смутно помню.
...
Рейтинг: 0 / 0
Пропихнуть предикат в группировку
    #39517580
Фотография DВА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VintDВА,
план запроса с группировкой и без отличается только частью которая в группировке? или вообще другой план? если только частью, то может попробовать как то вклинить часть аутлана? когда то Деев про такое рассказывал. правда я уже смутно помню.

план принципиально другой )
я пыталась внаглую подсунуть аутлайны от плана без группировки плану с группировкой,
а так же и от плана с верхнем уровнем и материлизацией , но оп походу не дурак )
...
Рейтинг: 0 / 0
Пропихнуть предикат в группировку
    #39517599
Фотография AlexFF__|
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DВАAlexFF__|,
не, все на +
Я бы взял из 10053 тексты обоих запросов сразу после раскрытия представлений и посмотрел, что именно мешает.
...
Рейтинг: 0 / 0
Пропихнуть предикат в группировку
    #39517608
Фотография DВА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexFF__|DВАAlexFF__|,
не, все на +
Я бы взял из 10053 тексты обоих запросов сразу после раскрытия представлений и посмотрел, что именно мешает.

в смысле стоимость шагов?

там несколько десятков вьюх, я даже их порядок соединения в хорошем варианте не осилила )))
несколькими хинтами навскидку удалось забить один из тех, кто пропихнул условие до самого низу
а вы говорите что мешает )))
...
Рейтинг: 0 / 0
Пропихнуть предикат в группировку
    #39517628
Фотография AlexFF__|
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DВАв смысле стоимость шагов?
Обычно, если при правке запроса перестает проходить какой-то хинт, использоваться нужные индекс и прочее, нужно в первую очередь проверить, что оптимизатор не переписал запрос так, что старые хинты/индексы/что-то еще в принципе не могут использоваться.
А потом уже можно и посмотреть по шагам трансформации запроса и выбора соединений и доступов.
...
Рейтинг: 0 / 0
Пропихнуть предикат в группировку
    #39517636
Фотография kinky cat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DВА
план принципиально другой )
я пыталась внаглую подсунуть аутлайны от плана без группировки плану с группировкой,
а так же и от плана с верхнем уровнем и материлизацией , но оп походу не дурак )
а как с группировкой, и с no_query_tansformation он себя ведет ?
...
Рейтинг: 0 / 0
Пропихнуть предикат в группировку
    #39517637
Фотография kinky cat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
буковку r пропустил
...
Рейтинг: 0 / 0
Пропихнуть предикат в группировку
    #39517768
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
kinky cat,

Пропихивание предикатов - тоже трансформация
...
Рейтинг: 0 / 0
Пропихнуть предикат в группировку
    #39517771
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
DВА,

Что ж вы на 10ке то... воспроизвести точно не получится, но если пришлешь экспорт метадата и статистики + сам запрос с трассой 10053, могу попробовать
...
Рейтинг: 0 / 0
Пропихнуть предикат в группировку
    #39517774
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Имел ввиду попробую на своей какой-нибудь с измененным OPTIMIZER_features_enable
...
Рейтинг: 0 / 0
Пропихнуть предикат в группировку
    #39517877
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DВАAlexFF__|пропущено...

Я бы взял из 10053 тексты обоих запросов сразу после раскрытия представлений и посмотрел, что именно мешает.

в смысле стоимость шагов?

там несколько десятков вьюх, я даже их порядок соединения в хорошем варианте не осилила )))
несколькими хинтами навскидку удалось забить один из тех, кто пропихнул условие до самого низу
а вы говорите что мешает )))Можно начать с final query для обоих случаев и смотреть отличаются ли только группировкой или она повлияла на иные трансформации.

Если первое, то опять взять аутлайн от первого и посмотреть подхватиться ли. Если не подхватился - вырезать лишнее до определения причины.
Если второе, то разбираться почему трансформировалось иначе.

И не совсем понятно, что понимается под проталкиванием предиката.
Наличие в плане "VIEW PUSHED PREDICATE" или просто применение фильтра на том этапе, на котором ожидается.
Также имеет значение, задействованы ли partitioning pruning и bloom filters.
...
Рейтинг: 0 / 0
Пропихнуть предикат в группировку
    #39517996
Бракованный финский угорь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshop,

О! Ты вернулсо! В отпуске был? Куда ездил, где отдыхал?
...
Рейтинг: 0 / 0
Пропихнуть предикат в группировку
    #39518040
RМагистр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Бракованный финский угорьО! Ты вернулсо! В отпуске был? Куда ездил, где отдыхал?

Это не имеет отношение к данной теме.
...
Рейтинг: 0 / 0
Пропихнуть предикат в группировку
    #39518449
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бракованный финский угорьdbms_photoshop,

О! Ты вернулсо! В отпуске был? Куда ездил, где отдыхал?А я не отдыхаю. Мне тренер в юности говорил "на кладбище отдохнешь". Очень понравилась его фраза.
Но спасибо за проявленный интерес. :))
...
Рейтинг: 0 / 0
Пропихнуть предикат в группировку
    #39518698
Фотография DВА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshopА я не отдыхаю.

"я просто не напрягаюсь"


ps во вторник вернусь к экспериментам с запросом отпишусь, пока мы с ним по разные стороны МКАДа )
...
Рейтинг: 0 / 0
25 сообщений из 29, страница 1 из 2
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Пропихнуть предикат в группировку
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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