Correct, but in the Java code, it's multiple statements in a single transaction, so it should stick. Not sure if something else stupid is going on.
Good to know about the ALTER DATABASE effect. I didn't realize that.
Thanks a billion.
Laurent.
From: Tom Lane <tgl@sss.pgh.pa.us>
Sent: Friday, January 25, 2019 3:04:37 PM
To: ldh@laurent-hasson.com
Cc: pgsql-performance@postgresql.org
Subject: Re: Zero throughput on a query on a very large table.
"ldh@laurent-hasson.com" <ldh@laurent-hasson.com> writes:
> Second, here is what i found and what messed us up.
> select current_setting('random_page_cost'); --> 4
> alter database "CMS_TMP" set random_page_cost=0.00000001;
> select current_setting('random_page_cost'); --> 4 ????
ALTER DATABASE only affects subsequently-started sessions.
> I also tried:
> select current_setting('random_page_cost'); --> 4
> select set_config('random_page_cost', '0.000001', true);
> select current_setting('random_page_cost'); --> 4 ????
That "true" means "local to the current transaction", which is
just the one statement if you don't have a BEGIN.
regards, tom lane