| 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: | Whole Thread | Raw Message | 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
| 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[]? |