From: | Jerry Sievers <gsievers19(at)comcast(dot)net> |
---|---|
To: | <vjoshi(at)zetainteractive(dot)com> |
Cc: | Tomas Vondra <tomas(dot)vondra(at)2ndquadrant(dot)com>, pgsql-performance(at)postgresql(dot)org |
Subject: | Re: Performance issues |
Date: | 2015-03-18 18:36:12 |
Message-ID: | 867fue2lwj.fsf@jerry.enova.com |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-performance |
Vivekanand Joshi <vjoshi(at)zetainteractive(dot)com> writes:
> So, here is the first taste of success and which gives me the confidence
> that if properly worked out with a good hardware and proper tuning,
> PostgreSQL could be a good replacement.
>
> Out of the 9 reports which needs to be migrated in PostgreSQL, 3 are now
> running.
>
> Report 4 was giving an issue and I will see it tomorrow.
>
> Just to inform you guys that, the thing that helped most is setting
> enable_nestloops to false worked. Plans are now not miscalculated.
>
> But this is not a production-suitable setting. So what do you think how to
> get a work around this?
Consider just disabling that setting for 1 or a few odd queries you have
for which they are known to plan badly.
begin;
set local enable_nestloops to false;
select ...;
commit/abort;
I'd say never make that sort of setting DB or cluster-wide.
>
>
> Regards,
> Vivek
>
> -----Original Message-----
> From: pgsql-performance-owner(at)postgresql(dot)org
> [mailto:pgsql-performance-owner(at)postgresql(dot)org] On Behalf Of Tomas Vondra
> Sent: Tuesday, March 17, 2015 9:00 PM
> To: pgsql-performance(at)postgresql(dot)org
> Subject: Re: [PERFORM] Performance issues
>
> On 17.3.2015 16:24, Thomas Kellerer wrote:
>> Tomas Vondra schrieb am 17.03.2015 um 15:43:
>>> On 17.3.2015 15:19, Thomas Kellerer wrote:
>>>> Tomas Vondra schrieb am 17.03.2015 um 14:55:
>>>>> (2) using window functions, e.g. like this:
>>>>>
>>>>> SELECT * FROM (
>>>>> SELECT *,
>>>>> ROW_NUMBER() OVER (PARTITION BY touchpoint_execution_id
>>>>> ORDER BY FROM max_creation_dt) AS rn
>>>>> FROM s_f_touchpoint_execution_status_history
>>>>> ) foo WHERE rn = 1
>>>>>
>>>>> But estimating this is also rather difficult ...
>>>>
>>>>
>>>> From my experience rewriting something like the above using DISTINCT
>>>> ON is usually faster.
>>>
>>> How do you get the last record (with respect to a timestamp column)
>>> using a DISTINCT ON?
>>
>> You need to use "order by ... desc". See here:
>> http://sqlfiddle.com/#!15/d4846/2
>
> Nice, thanks!
>
>>
>> Btw: your row_number() usage wouldn't return the "latest" row either.
>> It would return the "oldest" row.
>
> Oh, right. I forgot the DESC in the window.
>
>
> --
> Tomas Vondra http://www.2ndQuadrant.com/
> PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
>
>
> --
> Sent via pgsql-performance mailing list (pgsql-performance(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-performance
--
Jerry Sievers
Postgres DBA/Development Consulting
e: postgres(dot)consulting(at)comcast(dot)net
p: 312.241.7800
From | Date | Subject | |
---|---|---|---|
Next Message | Vivekanand Joshi | 2015-03-18 18:48:16 | Re: Performance issues |
Previous Message | Felipe Santos | 2015-03-18 17:51:06 | Re: Performance issues |