pg材料庫的常用操縱有以下多少種:
一、查詢
1)查詢過程:
select * from pg_stat_activity;
闡明:
datname表示材料庫名
procpid表示以後的SQL對應的PID
query_start表示SQL履行開端時光
current_query表示以後履行的SQL語句
waiting表示能否正在履行,t表示正在履行,f表示曾經履行實現
client_addr表示客戶端IP地點
2)kill過程:
kill有兩種方法,
第一種是:
SELECT pg_cancel_backend(PID);
第二種是:
SELECT pg_terminate_backend(PID);
3)查詢連接數
SELECT count(*) FROM (SELECT pg_stat_get_backend_idset() AS backendid) AS s;
二、受權
1)sequence受權,跟table受權有差別
grant usage,select on sequence <sequence_name> to <role>;
三、查詢size
1、sql查詢
postgres=# select pg_size_pretty(pg_database_size('postgres'));
2 、linux du查詢
postgres=# SELECT oid from pg_database where datname='postgres';
oid
-------
21360
檢查稱號為21360的文件的大小等於材料庫postgres的大小;
四、解鎖,注意要先連接到表地點的database
\\c &dbname
select distinct a.relname,b.pid from pg_class a,pg_locks b where a.oid=b.relation and b.granted=true and a.relname like '%&table_name%';
select pg_terminate_backend(&pid);
五、查詢哪些表佔用的空間大年夜。
SELECT table_schema || '.' || table_name AS table_full_name,
pg_size_pretty(pg_total_relation_size('"' || table_schema || '"."' || table_name || '"')) AS size
FROM information_schema.tables
where table_name like '%awr%'
ORDER BY
pg_total_relation_size('"' || table_schema || '"."' || table_name || '"') DESC ;