72 lines
1.6 KiB
Markdown
72 lines
1.6 KiB
Markdown
```postgresql
|
||
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;
|
||
```
|
||
|
||
|
||
|
||
```postgresql
|
||
-- 查看表的总大小,包括索引大小
|
||
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;
|
||
|
||
|
||
```
|
||
|