Re: Hash Anti Join performance degradation

Поиск
Список
Период
Сортировка
От Kevin Grittner
Тема Re: Hash Anti Join performance degradation
Дата
Msg-id 4DDE42B2020000250003DD5E@gw.wicourts.gov
обсуждение исходный текст
Ответ на Re: Hash Anti Join performance degradation  (panam <panam@gmx.net>)
Ответы Re: Hash Anti Join performance degradation
Список pgsql-performance
panam <panam@gmx.net> wrote:

> I cannot use it because of the way that query is generated
> (by hibernate).
>
> The (simplyfied) base query is just
>
> SELECT b.id from box
>
> the subquery
>
> (SELECT  m1.id FROM message m1
>    LEFT JOIN message m2
>       ON (m1.box_id = m2.box_id  AND m1.id < m2.id )
>    WHERE m2.id IS NULL AND m1.box_id = b.id) as lastMessageId
>
> is due to a hibernate formula (containing more or less plain SQL)
> to determine the last message id for that box. It ought to return
> just one row, not multiple. So I am constrained to the subquery in
> all optimization attemps (I cannot combine them as you did), at
> least I do not see how. If you have an idea for a more performant
> subquery though, let me know, as this can easily be replaced.

Maybe:

(SELECT max(m1.id) FROM message m1 WHERE m1.box_id = b.id)

-Kevin

В списке pgsql-performance по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: LIMIT and UNION ALL
Следующее
От: "Kevin Grittner"
Дата:
Сообщение: Re: The shared buffers challenge