PG 12 slow selects from pg_settings - Mailing list pgsql-performance

From Julius Tuskenis
Subject PG 12 slow selects from pg_settings
Date
Msg-id CAGfhecjKGynbC4B2RFEUh3-Qyse4eRkHd-YdvpVp5xqHqZB9oQ@mail.gmail.com
Whole thread Raw
Responses Re: PG 12 slow selects from pg_settings
List pgsql-performance
Dear PostgreSQL community,

we have noticed a severe decrease in performance reading pg_catalog.pg_settings table in PostgreSQL 12 on MS Windows 10 machines compared to earlier versions.

```
explain (analyze, buffers, timing)
SELECT * from pg_catalog.pg_settings where name = 'standard_conforming_strings';
```

On PostgreSQL 12.5, compiled by Visual C++ build 1914, 64-bit:
Function Scan on pg_show_all_settings a  (cost=0.00..12.50 rows=5 width=485) (actual time=343.350..343.356 rows=1 loops=1)
  Filter: (name = 'standard_conforming_strings'::text)
  Rows Removed by Filter: 313
Planning Time: 0.079 ms
Execution Time: 343.397 ms

Compare to PostgreSQL 11.13, compiled by Visual C++ build 1914, 64-bit:
Function Scan on pg_show_all_settings a  (cost=0.00..12.50 rows=5 width=485) (actual time=0.723..0.728 rows=1 loops=1)
  Filter: (name = 'standard_conforming_strings'::text)
  Rows Removed by Filter: 289
Planning Time: 0.125 ms
Execution Time: 0.796 ms


This is standard installation, the changed parameters are:
```
SELECT name, current_setting(name), source
FROM pg_settings
WHERE source NOT IN ('default', 'override');
```

client_encoding UTF8 client
DateStyle ISO, YMD client
default_text_search_config pg_catalog.simple session
default_transaction_isolation read committed session
dynamic_shared_memory_type windows configuration file
extra_float_digits 3 session
lc_messages Lithuanian_Lithuania.1257 configuration file
lc_monetary Lithuanian_Lithuania.1257 configuration file
lc_numeric Lithuanian_Lithuania.1257 configuration file
lc_time Lithuanian_Lithuania.1257 configuration file
listen_addresses * configuration file
log_destination stderr configuration file
log_file_mode 0640 configuration file
log_timezone Europe/Helsinki configuration file
logging_collector on configuration file
max_connections 100 configuration file
max_stack_depth 2MB environment variable
max_wal_size 1GB configuration file
min_wal_size 80MB configuration file
port 5444 configuration file
search_path "$user", public session
shared_buffers 128MB configuration file
TimeZone Europe/Helsinki client


The slowing down is observed on MS Windows 10 machines only. We have pg12 on linux (PostgreSQL 12.6 (Debian 12.6-1.pgdg100+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit ) that doesn't show any decrease in performance.

I've testet different versions and it seems the problem appeared on PG12, earlier versions up to PG11 work ok. PG13 also suffers from low reading speed of pg_settings.

The behaviour is reproduced on 3 different machines (2 virtual and one physical, different hardware).

What is the cause of this? How to fix the issue?

Regards,
Julius Tuskenis

pgsql-performance by date:

Previous
From: Jeremy Schneider
Date:
Subject: Re: Better, consistent instrumentation for postgreSQL using a similar API as Oracle
Next
From: Ranier Vilela
Date:
Subject: Re: PG 12 slow selects from pg_settings