powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / будут ли оптимизированы два аналогичных подзапроса?
3 сообщений из 3, страница 1 из 1
будут ли оптимизированы два аналогичных подзапроса?
    #33082224
Подскажите, в этом выражении

Код: plaintext
CREATE VIEW batch_command AS SELECT b.id, b.caption, b.related_url, CASE WHEN b.active AND  (SELECT COUNT(id) FROM command WHERE command.batch_id=b.id) >  0  THEN true ELSE false END AS is_active, (SELECT COUNT(id) FROM command WHERE command.batch_id=b.id) AS num_commands FROM batch AS b

вложенный запрос будет выполняться дважды или выражение будет оптимизировано? Можно ли рассчитывать на оптимизатор и можно ли избежать повторения?

Суть в том, что активность пакета определяется пользовательским флагом И наличием ассоциированных с пакетом комманд. я решил вынести этот функционал во вью и туда же выбирать количество комманд, но сделать (SELECT COUNT(id) FROM command WHERE command.batch_id=b.id) AS num_commands в CASE у меня не выходит. Я что-то упустил?
...
Рейтинг: 0 / 0
будут ли оптимизированы два аналогичных подзапроса?
    #33082410
Meta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По поводу оптимизиции запросов не знаю, а вот во втором случае вместо вью по мне лучше создать функцию с атрибутом stable :-) В этом случае и оптимизиция будет, да и проверять возвращаемое значение будет легко :)
...
Рейтинг: 0 / 0
будут ли оптимизированы два аналогичных подзапроса?
    #33084083
Funny_Falcon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE VIEW batch_command AS
SELECT b.id, b.caption, b.related_url, 
       (b.active AND b.numcomands >  0 ) AS is_active, 
       b.num_commands
FROM
       (SELECT b.id, b.caption, b.related_url,b.active, 
              (SELECT COUNT(id) 
               FROM command 
               WHERE command.batch_id=b.id) AS num_commands 
        FROM batch AS b) as b
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / будут ли оптимизированы два аналогичных подзапроса?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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