-- 查詢未空閑的進程信息
select * from pg_stat_activity where current_query<>'<IDLE>';
結果可查看數據庫名,進程標識符,用戶名,查詢語句,是否鎖表,查詢開始時間,客戶端地址等信息。
當執行錯誤或者鎖表,可在客戶端處理,可先用取消進程,如果不好用可用終止進程。
-- GP查看數據鎖
SELECT pid,rolname, rsqname, granted,
current_query, datname
FROM pg_roles, gp_toolkit.gp_resqueue_status, pg_locks, pg_stat_activity
WHERE pg_roles.rolresqueue=pg_locks.objid
AND pg_locks.objid=gp_toolkit.gp_resqueue_status.queueid
AND pg_stat_activity.procpid=pg_locks.pid;
-- 取消進程
select pg_cancel_backend(procpid);
-- 終止進程
select pg_terminate_backend(procpid);
-- 版本信息
SELECT VERSION();
-- 客戶端編碼
SELECT pg_client_encoding();
--當前數據庫IP和端口
SELECT inet_server_addr(),inet_server_port();
--查看數據庫大小,以字節和GB格式輸出
SELECT pg_database_size('devrpt'),pg_size_pretty(pg_database_size('devrpt'));
-- 查看各模式大小
select pg_size_pretty(cast( sum(pg_relation_size( schemaname || '.' || tablename)) as bigint)), schemaname
from pg_tables t inner join pg_namespace d on t.schemaname=d.nspname group by schemaname ORDER BY 1 DESC;
-- 根據模式查詢表大小,數據庫空間不足清理表時經常使用!
select schemaname || '.' || tablename, pg_size_pretty(pg_relation_size( schemaname || '.' || tablename))
from pg_tables t inner join pg_namespace d on t.schemaname=d.nspname
where schemaname='anrpt' order by pg_relation_size( schemaname || '.' || tablename) desc;
-- 顯示是否自動提交
show AUTOCOMMIT
-- 顯示最大連接數
show max_connections
-- 按照用戶分組查看連接數
select usename, count(*) from pg_stat_activity group by usename order by count(*) desc;
-- 修改最大連接數
gpconfig -c max_connection -v 500 -m 500
-- 修改用戶user1的連接數
ALTER ROLE user1 CONNECTION LIMIT 300
-- 查看函數創建語句
select proname, prosrc from pg_proc where proname = 'function_name';
-- 做表分析
vacuum analyze 表名
上一篇:【gp數據庫】后台周期執行函數實例(shell+crontab)