Re: SQL query runs fine on one platform (FreeBSD), but hangs on another (Windows)

From: Vik Fearing <vik(dot)fearing(at)dalibo(dot)com>
To: David(dot)I(dot)Noel(at)gmail(dot)com
Cc: Achilleas Mantzios <achill(at)matrix(dot)gatewaynet(dot)com>, PGSQL Mailing List <pgsql-general(at)postgresql(dot)org>
Subject: Re: SQL query runs fine on one platform (FreeBSD), but hangs on another (Windows)
Date: 2014-04-30 17:14:05
Message-ID: 53612F5D.7060108@dalibo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On 04/30/2014 01:08 PM, David Noel wrote:
>> For 9.3, you can write that as:
>>
>> select p.*, s.NoOfSentences
>> from page p,
>> lateral (select count(*) as NoOfSentences
>> from sentence s
>> where s."PageURL" = p."URL") s
>> where "Classification" like case ... end
>> order by "PublishDate" desc
>> limit 100;
>>
>> Performance will be much, much better than what you have but it won't
>> work at all on the 9.2 server.
> Some interesting feedback on that query you provided. It took nearly
> 80 seconds to complete.
>
> I rewrote it* as a join and it took .8 seconds to complete:
>
> select p.*, count(*) as NoOfSentences
> from page p
> inner join sentence c on p."URL" = c."URL"
> where "Classification" = 'health'
> group by p."URL"
>
> *I may have written it incorrectly but it does _seem_ to produce correct output.

I must have been very tired when I wrote that. This latest version of
yours is clearly the way it should be written.

> Something seems odd with laterals. I'll have to dig into it more later
> and report back, I'm not sure it behaves this way.

There is nothing wrong with LATERALs, they just have no business being
used here. Sorry for the noise.

--
Vik

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Elanchezhiyan Elango 2014-04-30 17:40:53 Re: Vacuuming strategy
Previous Message Raymond O'Donnell 2014-04-30 16:35:12 Re: Escape double-quotes in text[]?