Re: Hash Anti Join performance degradation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



panam <panam@xxxxxxx> 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

-- 
Sent via pgsql-performance mailing list (pgsql-performance@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-performance


[Postgresql General]     [Postgresql PHP]     [PHP Users]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Yosemite]

  Powered by Linux