Re: Slow alter sequence with PG10.1

From: Michael Krüger <michael(at)kruegers(dot)email>
To: Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Slow alter sequence with PG10.1
Date: 2018-01-23 06:35:30
Message-ID: CACSnzzUjE3uwomEnBNr979mvOo3rzVx+x7Kp-W1hjgfcXH-d-w@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hello all,

I think a good alternative was found and seems to be working fine. I really
do appreciate all the help and feedback.
Many thanks.

Regards,
Michael

Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com> schrieb am Di., 23. Jan. 2018 um
02:12 Uhr:

> On 01/22/2018 02:47 PM, Michael Krüger wrote:
> > Hello all,
> >
> > after changing the function to this:
> >
> > CREATE OR REPLACE FUNCTION multi_nextval(
> > use_seqname text,
> > use_increment integer)
> > RETURNS bigint
> > LANGUAGE 'plpgsql'
> > COST 100
> > VOLATILE
> > AS $BODY$
> > DECLARE
> > reply int8;
> > lock_id int4;
> > seq_idx int8;
> > BEGIN
> > SELECT oid::int4 INTO lock_id FROM pg_class WHERE relname =
> > split_part(use_seqname, '.', 2);
> > perform pg_advisory_lock(lock_id);
> >
> > seq_idx :=nextval(use_seqname);
> > perform setval(use_seqname, seq_idx + use_increment - 1, 't');
> >
> > perform pg_advisory_unlock(lock_id);
> > return seq_idx;
> > END;
> > $BODY$;
> >
> > I do get a total execution time of Time: 5922,428 ms (00:05,922) - much
> > better than before.
> >
> > Is there any drawback to use setval compared to the ALTER SEQUENCE which
> > I have used before? If not, then this could be the work around to go
> > with as it has a similar performance to the original function.
> >
> > I guess - the reason I'm a bit disappointed from the new behavior is
> > that we have used Postgresql for more than 10 years and it has never let
> > us down. We have been able to improve our product with every new release
>
> Well the nature of major version releases is that they can break
> backwards compatibility. This is one of the reasons there is 5 year
> community support on versions, time to develop a migration plan. I have
> been caught by changes, before e.g. the 8.3 change in casting rules, a
> later change that made plpythonu use Python rules for truthfulness
> instead of SQL, etc. You seem to have had a run of good luck. Going
> forward I would assume a major release will contain breaking changes and
> test thoroughly.
>
> > of Postgres. This is the first time for me that a new release of
> > Postgres caused some severe headaches among our customers.
> > If you all agree that this changed function should be equivalent to the
> > original one, then its at least an easy fix.
> >
> > Thank you all for your fast responses.
> >
> > Regards,
> > Michael
> >
>
>
>
> --
> Adrian Klaver
> adrian(dot)klaver(at)aklaver(dot)com
>

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Thiemo Kellner, NHC Barhufpflege 2018-01-23 07:36:07 Re: FW: Setting up streaming replication problems
Previous Message Adrian Klaver 2018-01-23 01:12:39 Re: Slow alter sequence with PG10.1