2017-11-07 22:39 GMT+01:00 Scott Marlowe <scott.marl...@gmail.com>: > On Tue, Nov 7, 2017 at 2:25 PM, Ulf Lohbrügge <ulf.lohbrue...@gmail.com> > wrote: > > 2017-11-07 20:45 GMT+01:00 Andres Freund <and...@anarazel.de>: > >> > >> On 2017-11-07 18:48:14 +0100, Ulf Lohbrügge wrote: > >> > Hi, > >> > > >> > 2017-11-07 16:11 GMT+01:00 Andres Freund <and...@anarazel.de>: > >> > > >> > > Hi, > >> > > > >> > > On 2017-11-07 11:11:36 +0100, Ulf Lohbrügge wrote: > >> > > > I'm using PostgreSQL 9.5.9 on Debian and experience slow execution > >> > > > of > >> > > some > >> > > > basic SET statements. > >> > > > > >> > > > I created about 1600 roles and use that setup for a multi tenancy > >> > > > application: > >> > > > >> > > Hm. How often do you drop/create these roles? How many other > >> > > roles/groups is one role a member of? > >> > > > >> > > >> > I create between 10-40 roles per day. > >> > >> Could you VACUUM (VERBOSE, FREEZE) that table and report the output? Do > >> you ever delete roles? > > > > > > Which table do you mean exactly? pg_catalog.pg_authid? > > > > Sorry, forgot to write that: I delete about 2-3 roles per day. > > I'm gonna take a guess that pg_users or pg_roles has gotten bloated > over time. Try running a vacuum full on both of them. It's also > possible some other pg_xxx table is bloated out here too you might > need to download something like checkpostgres.pl to check for bloat in > system catalog tables. >
As pg_user and pg_roles are views: Do you mean pg_authid? That table is just 432kb large: --snip-- postgres=# select pg_size_pretty(pg_total_relation_size('pg_authid')); pg_size_pretty ---------------- 432 kB (1 row) --snap-- I don't want to start a vacuum full right now because I'm not quite sure if things will lock up. But I will do it later when there is less traffic. I just ran "check_postgres.pl --action=bloat" and got the following output: --snip-- POSTGRES_BLOAT OK: DB "postgres" (host:localhost) (db postgres) index pg_shdepend_depender_index rows:? pages:9615 shouldbe:4073 (2.4X) wasted bytes:45400064 (43 MB) | pg_shdepend_depender_index=45400064B pg_catalog.pg_shdepend=9740288B pg_shdepend_reference_index=4046848B pg_depend_reference_index=98304B pg_depend_depender_index=57344B pg_catalog.pg_class=32768B pg_catalog.pg_description=16384B pg_amop_fam_strat_index=8192B pg_amop_opr_fam_index=8192B pg_catalog.pg_amop=8192B pg_catalog.pg_depend=8192B pg_class_oid_index=0B pg_class_relname_nsp_index=0B pg_class_tblspc_relfilenode_index=0B pg_description_o_c_o_index=0B --snap-- Looks fine, doesn't it? Cheers, Ulf