1.6 KiB
1.6 KiB
SELECT locker.pid,
pc.relname,
locker.mode,
locker_act.application_name,
least(query_start,xact_start) start_time,
locker_act.state,
CASE
WHEN granted='f' THEN
'wait_lock'
WHEN granted='t' THEN
'get_lock'
END lock_satus,current_timestamp - least(query_start,xact_start) AS runtime,
locker_act.query
FROM pg_locks locker,pg_stat_activity locker_act, pg_class pc
WHERE locker.pid=locker_act.pid
AND NOT locker.pid=pg_backend_pid()
AND application_name<>'pg_statsinfod'
AND locker.relation = pc.oid
AND pc.reltype<>0 --and pc.relname='t'
ORDER BY runtime desc;
SELECT pg_terminate_backend(14448)
SELECT
w1.pid AS 等待进程,
w1.MODE AS 等待锁模式,
w2.usename AS 等待用户,
w2.query AS 等待会话,
b1.pid AS 锁的进程,
b1.MODE 锁的锁模式,
b2.usename AS 锁的用户,
b2.query AS 锁的会话,
b2.application_name 锁的应用,
b2.client_addr 锁的 IP地址,
b2.query_start 锁的语句执行时间
FROM
pg_locks w1
JOIN pg_stat_activity w2 ON w1.pid = w2.pid
JOIN pg_locks b1 ON w1.transactionid = b1.transactionid
AND w1.pid != b1.pid
JOIN pg_stat_activity b2 ON b1.pid = b2.pid
WHERE
NOT w1.GRANTED;
-- 查看表的总大小,包括索引大小
select pg_size_pretty(pg_total_relation_size('test'));
-- 以KB,MB,GB的方式来查看表大小
select pg_size_pretty(pg_relation_size('test'));
-- 查看最大连接数
show max_connections;
-- 查看当前连接数
SELECT COUNT(*) from pg_stat_activity;