po 8. 4. 2019 v 16:55 odesílatel Krzysztof Plocharz <ploch...@9livesdata.com>
napsal:

>
>
> On 2019/04/08 16:42, Justin Pryzby wrote:
> > On Mon, Apr 08, 2019 at 04:33:34PM +0200, Pavel Stehule wrote:
> >> po 8. 4. 2019 v 16:11 odes�latel Krzysztof Plocharz <
> ploch...@9livesdata.com> napsal:
> >>
> >>> We have some very strange query planning problem. Long story short it
> >>> takes 67626.278ms just to plan. Query execution takes 12ms.
> >>>
> >>> Query has 7 joins and 2 subselects.
> >>> It looks like the issue is not deterministic, sometimes is takes few ms
> >>> to plan the query.
> >>>
> >>> One of the tables has 550,485,942 live tuples and 743,504,012 dead
> >>> tuples. Running ANALYZE on that tables solves the problem only
> temporarily.
> >>>
> >>> Question is how can we debug what is going on?
> >>
> >> please check your indexes against bloating. Planner get min and max from
> >> indexes and this operation is slow on bloat indexes.
>
> Yes, we thought about this, there are over 700,000,000 dead tuples. But
> as you said, it should not result in 67 second planning...
>
> >
> > I think that's from get_actual_variable_range(), right ?
> >
> > If it's due to bloating, I think the first step would be to 1) vacuum
> right
> > now; and, 2) set more aggressive auto-vacuum, like ALTER TABLE t SET
> > (AUTOVACUUM_VACUUM_SCALE_FACTOR=0.005).
> >
>
> We did pgrepack and it did help, but is it possible for
> get_actual_variable_range to take over 60 seconds?
> Is there any other workaround for this except for pgrepack/vacuum?
>
> Anyway to actually debug this?
>

you can use perf and get a profile.

https://wiki.postgresql.org/wiki/Profiling_with_perf



> > What version postgres server ?
> >
> > Justin
> >
> >
>
>
>
>
> On 2019/04/08 16:33, Pavel Stehule wrote:>
>  >
>  > po 8. 4. 2019 v 16:11 odesílatel Krzysztof Plocharz
>  > <ploch...@9livesdata.com <mailto:ploch...@9livesdata.com>> napsal:
>  >
>  >     Hi
>  >
>  >     We have some very strange query planning problem. Long story short
> it
>  >     takes 67626.278ms just to plan. Query execution takes 12ms.
>  >
>  >     Query has 7 joins and 2 subselects.
>  >     It looks like the issue is not deterministic, sometimes is takes
> few ms
>  >     to plan the query.
>  >
>  >     One of the tables has 550,485,942 live tuples and 743,504,012 dead
>  >     tuples. Running ANALYZE on that tables solves the problem only
>  >     temporarily.
>  >
>  >     Question is how can we debug what is going on?
>  >
>  >
>  > please check your indexes against bloating. Planner get min and max from
>  > indexes and this operation is slow on bloat indexes.
>  >
> Yes, we thought about this, there are over 700,000,000 dead tuples. But
> as you said, it should not result in 67 second planning...
>
>  > but 67 sec is really slow - it can be some other other problem - it is
>  > real computer or virtual?
>  >
> real, with pretty good specs: NVME drives, Six-Core AMD Opteron, 64GB of
> ram. During testing system was mostly idle.
>
>
>  >
>  >     Best Regards,
>  >     Krzysztof Płocharz
>  >
>  >
>
>
>

Reply via email to