-
查看运行时间长的sql
selectpid,datname,usename,client_addr,query_start,now()-query_startastime_run, queryfrompg_stat_activitywherestate='active'orderbytime_rundesclimit 20; -
查看指定表空间下的表和索引
SELECTc.relname, t.spcnameFROMpg_class cleftJOINpg_tablespace tONc.reltablespace = t.oidWHEREt.spcname ='data1tbs';默认表空间的话where判断 c.reltablespace=0 或 t.spcname is null
-
查看指定pid需要的锁状态
selectpc.relname,pl.*frompg_locks plleftjoinpg_class pconpc.relfilenode=pl.relationwherepl.pid=13912 -
查看未使用索引
selectschemaname,relname,indexrelname,idx_scanfrompg_stat_user_indexeswhereidx_scan=0andschemaname='public'andindexrelnamenotlike'%_pkey' -
查看指定表的索引
selectschemaname,relname,indexrelname,idx_scanfrompg_stat_user_indexeswhereschemaname='public'andrelname='visited_article' -
某个pid在等待的锁的持有者
selectpl1.*,pl2.pid,pa.usename,pa.queryfrompg_locks pl1leftjoinpg_locks pl2onpl1.transactionid=pl2.transactionidandpl2.grantedleftjoinpg_stat_activity paonpl2.pid=pa.pidwherepl1.pid=21641andnotpl1.granted -
查看所有锁的状态
selectpg_stat_activity.datname,pg_class.relname,pg_locks.transactionid, pg_locks.mode, pg_locks.granted,pg_stat_activity.usename,substr(pg_stat_activity.query,1,30), pg_stat_activity.query_start,age(now(),pg_stat_activity.query_start)as"age", pg_stat_activity.pidfrompg_stat_activity,pg_locksleftouterjoinpg_classon(pg_locks.relation = pg_class.oid)wherepg_locks.pid=pg_stat_activity.pidorderbyquery_start limit 10
--查看DB大小
select pg_size_pretty(pg_database_size('ve'));
--查看表大小(不含索引等信息)
select pg_relation_size('user');
select pg_size_pretty(pg_relation_size('use'))
--查看每个DB的使用情况(读,写,缓存,更新,事务等) select * from pg_stat_database --查看索引的使用情况 select * from pg_stat_user_indexes; --查看表所对应的数据文件路径与大小 SELECT pg_relation_filepath(oid), relpages FROM pg_class WHERE relname = 'empsalary';
--查看表空间大小
select pg_tablespace_size('pg_default');