PostgreSQL集群篇——常用的运维SQL
简述
本文主要我是日常使用的一些运维SQL和整理于互联网上的SQL,为了方便日常的使用,特把其汇总起来,遇到常用的时将会进行补充该文,欢迎大家在评论区进行提出一些常用的SQL。
正文
1、查询全库所有的表
select * from pg_tables;
2、获取表名及注释
select relname as tabname,cast(obj_description(relfilenode,'pg_class') as varchar) as comment from pg_class c
where relkind = 'r' and relname not like 'pg_%' and relname not like 'sql_%' order by relname
3、查询所有库的连接情况
select * from pg_stat_activity;
4、查询数据库大小
SELECT pg_size_pretty(pg_database_size('postExpress'));
5、查询指定域中表的大小
select relname, pg_size_pretty(pg_relation_size(relid)) from pg_stat_user_tables where schemaname='指定域' order by pg_relation_size(relid) desc;
6、杀死指定用户的所有进程
select pg_terminate_backend(pid) from pg_stat_activity where usename='用户名';
7、查询最消耗CPU的sql语句
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head
select procpid, start, now() - start as lap, current_query
from
(select backendid, pg_stat_get_backend_pid(s.backendid) as procpid, pg_stat_get_backend_activity_start(s.backendid) as start, pg_stat_get_backend_activity(s.backendid) as current_query
from
(select pg_stat_get_backend_idset() as backendid) as s
) as s
where
current_query <> '<IDLE>' and procpid IN (17637,123,321) --加入查找到的进程ID
order by
lap desc;
待补充...
8、
9、
10、
11、
12、
13、
14、
15、
本文声明:
本作品由 cn華少 采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。