|
Оптимизация запроса. Вложенный запрос в поле выборки. Насколько это оптимально?
| ☑ |
0
SerGa
26.09.22
✎
17:57
|
Сейчас допиливаю некоторые формы списков в ЗУП
там в типовой используются динамические списки вот с такими конструкциями:
ЖурналДокументовВедомостиНаВыплатуЗарплаты.Комментарий КАК Комментарий,
ЖурналДокументовВедомостиНаВыплатуЗарплаты.Тип КАК Тип,
ВЫБОР
КОГДА ИСТИНА В
(ВЫБРАТЬ ПЕРВЫЕ 1
ИСТИНА
ИЗ
РегистрСведений.ОплатаВедомостейНаВыплатуЗарплаты КАК ОплатаВедомостейНаВыплатуЗарплаты
ГДЕ
ОплатаВедомостейНаВыплатуЗарплаты.Ведомость = ЖурналДокументовВедомостиНаВыплатуЗарплаты.Ссылка)
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ КАК ЕстьОплаты
ИЗ
ЖурналДокументов.ВедомостиНаВыплатуЗарплаты КАК ЖурналДокументовВедомостиНаВыплатуЗарплаты
т.е. в поле выборки подзапрос сидит.... не очень пойму насколько это оптимально?
Не значит ли это что подзапрос выполнится ровно столько раз сколько строк в выборке?
динамический список же поидее чтобы работать быстро должен использовать мегаоптимальный запрос - а тут вот какая развесистая конструкция получется.
Может кто в курсе?
|
|
1
rudnitskij
26.09.22
✎
18:09
|
(0) Запись странная, но поскольку соединение не с виртуальной таблицей, ничего неоптимального тут нет. Просто не часто встречающийся вариант получения факта наличия записей в другой таблице, а так должно работать
|
|
2
SerGa
26.09.22
✎
18:11
|
(1) то что оно работает, в этом нет сомнений... вопрос в оптимальности... сколько раз подзапрос выполняется..
|
|
3
H A D G E H O G s
26.09.22
✎
18:12
|
Это коррелированный подзапрос, обычно это нормально
|
|
4
Сергиус
26.09.22
✎
18:17
|
(0)В идеале надо смотреть профайлером план запроса в SQL(если серверная база), там возможно яснее будет.
|
|
5
SerGa
26.09.22
✎
18:18
|
(4) это да.. я просто думал может кто уже ковырял и в курсе
|
|
6
mistеr
26.09.22
✎
19:28
|
(0) Если это типовой код, то нормально. Другие варианты скорее всего хуже.
|
|