powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Как заставить компилятор запроса делать то, что надо, а не то, что ему хочется?
11 сообщений из 11, страница 1 из 1
Как заставить компилятор запроса делать то, что надо, а не то, что ему хочется?
    #36384275
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Например, запрос типа
select * from table2 where id in
(select value from table3)
Как заставить сначала выполнить подзапрос и затем только основной запрос?
...
Рейтинг: 0 / 0
Как заставить компилятор запроса делать то, что надо, а не то, что ему хочется?
    #36384310
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если не ошибаюсь
то вам смотреть в сторону %NOFLATTEN

_________________________________
Cache for Windows NT (AMD64) 5.0.21 (Build 6408) Tue Jan 3 2006 13:37:41 EST
...
Рейтинг: 0 / 0
Как заставить компилятор запроса делать то, что надо, а не то, что ему хочется?
    #36384331
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смотрел, %NOFLATTEN, %NOSVSO
почувствовал себя как мартышка из басни крылова с очками. Куда их лепить?

select * from %NOFLATTEN table2 where id in
(select value from table3)

или

select * from table2 where id in
(select %NOFLATTEN value from table3)
? Так и так - не заметил изменения плана.
...
Рейтинг: 0 / 0
Как заставить компилятор запроса делать то, что надо, а не то, что ему хочется?
    #36384365
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
select * from table2 where id in (select value from %noflatten table3)

PS: ещё не забудьте оптимизировать таблицы.
...
Рейтинг: 0 / 0
Как заставить компилятор запроса делать то, что надо, а не то, что ему хочется?
    #36384402
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В случае select можно переделать

select * from table2
left join table3 on table3.value=table2.id

Но мне хочется сделать Update, а при этом join-ы у меня не получается использовать
...
Рейтинг: 0 / 0
Как заставить компилятор запроса делать то, что надо, а не то, что ему хочется?
    #36384461
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Servit,
Подзапрос достаточно оптимален, 0.045 секунды
в основном запроса нет никаких условий, кроме выборки по ID из подзапроса.
Пробовал написать как вы сказали, но все равно идет по table2
...
Рейтинг: 0 / 0
Как заставить компилятор запроса делать то, что надо, а не то, что ему хочется?
    #36384878
Ptn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При таком написании никто не мешает использовать обычный JOIN
...
Рейтинг: 0 / 0
Как заставить компилятор запроса делать то, что надо, а не то, что ему хочется?
    #36385735
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ptn, мне нужен апдейт, а в апдейтах не умею join использовать

update from table2
set ...
where id in
(select value from table3)

можно ли сделать без вложенного запроса?
...
Рейтинг: 0 / 0
Как заставить компилятор запроса делать то, что надо, а не то, что ему хочется?
    #36386648
Ptn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну тогда как вариант писать программу
...
Рейтинг: 0 / 0
Как заставить компилятор запроса делать то, что надо, а не то, что ему хочется?
    #36386706
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н.
Код: plaintext
1.
2.
3.
4.
update from table2 
set ...
where id in 
(select value from table3)
можно ли сделать без вложенного запроса?
Вот почитай ...
...
Рейтинг: 0 / 0
Как заставить компилятор запроса делать то, что надо, а не то, что ему хочется?
    #36386763
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неа, не пойдет.
Хочу оптимизировать запрос. Он корректный и легкий, просто оптимизатор не понимает, как его обрабатывать.
Писать программы, приделывать сбоку хранимые процедуры и т.д. не хочу.
Саму задачу решил другим путем - просто сгенерил нужный SQL со всеми идешниками, но это "плохое" решение проблемы, а подобные задачи возникают часто. Хочется понять, как делать правильно, если это возможно.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Как заставить компилятор запроса делать то, что надо, а не то, что ему хочется?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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