Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
database:postgres [2024/03/06 13:55] admin |
database:postgres [2025/10/22 08:21] (current) admin |
||
|---|---|---|---|
| Line 3: | Line 3: | ||
| < | < | ||
| drop database [db] WITH (force) | drop database [db] WITH (force) | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== Drop all tables ==== | ||
| + | < | ||
| + | DO $$ | ||
| + | DECLARE | ||
| + | r RECORD; | ||
| + | BEGIN | ||
| + | FOR r IN (SELECT tablename FROM pg_tables WHERE schemaname = ' | ||
| + | EXECUTE 'DROP TABLE IF EXISTS ' || quote_ident(r.tablename) || ' CASCADE'; | ||
| + | END LOOP; | ||
| + | END $$; | ||
| </ | </ | ||
| Line 15: | Line 28: | ||
| < | < | ||
| PGDATABASE=mydb | PGDATABASE=mydb | ||
| + | POSTGRES_USER=postgres | ||
| pg_restore --clean -Fc -j 8 -d $PGDATABASE -U $POSTGRES_USER /tmp/db.sql | 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 / | ||
| + | </ | ||
| + | ==== 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 ' | ||
| + | </ | ||