==== Drop database & close connections ==== drop database [db] WITH (force) ==== Drop all tables ==== DO $$ DECLARE r RECORD; BEGIN FOR r IN (SELECT tablename FROM pg_tables WHERE schemaname = 'public') LOOP EXECUTE 'DROP TABLE IF EXISTS ' || quote_ident(r.tablename) || ' CASCADE'; END LOOP; END $$; ==== Dump local database to file ==== PGDATABASE=mydb pg_dump -Fc -Z 9 -d $PGDATABASE -U $POSTGRES_USER > /tmp/$PGDATABASE.dump ==== Import dump file in existing local database ==== PGDATABASE=mydb POSTGRES_USER=postgres pg_restore --clean -Fc -j 8 -d $PGDATABASE -U $POSTGRES_USER /tmp/db.sql ==== Run postgresqltuner script in alpine docker image ==== apk add perl perl-dbd-pg && wget -O /tmp/postgresqltuner.pl https://postgresqltuner.pl && chmod +x /tmp/postgresqltuner.pl && /tmp/postgresqltuner.pl ==== Check longest queries ==== SELECT * FROM pg_stat_statements ORDER BY total_exec_time DESC LIMIT 5; SELECT pid, now() - pg_stat_activity.query_start AS duration, query, query_start, state FROM pg_stat_activity ==== Check locks ==== select l.pid, l.mode, sa.pid, sa.query from pg_locks l inner join pg_stat_activity sa on l.pid = sa.pid where l.mode like '%xclusive%';