一、SQL执行状态
1、每个用户连接数(包括空闲连接)
select usename,count(*) from pg_stat_activity group by usename;
2、每个用户连接数(不包括空闲连接)
select usename,count(*) from pg_stat_activity where current_query !='<IDLE>' group by usename;
3、当前查询
select usename, client_addr,current_timestamp-query_start as run_time,current_query from pg_stat_activity where current_query !='<IDLE>';
二、表结构相关
1、查看表结构:
\d bi.table_name \d+ bi.table_name
2、查询GP下一个表大小:
select pg_size_pretty(pg_relation_size('bi.dprpt_table_name'));
3、一个表相关空间的总大小:
select pg_size_pretty(pg_total_relation_size('bi.dprpt_table_name'));
4、查看表名:
SELECT * FROM pg_tables where tablename like 'agg_%';
三、权限相关
1、查看/修改账号的连接数限制:
SELECT rolname, rolconnlimit FROM pg_roles WHERE rolconnlimit != -1; ALTER ROLE role_name WITH CONNECTION LIMIT 15; ALTER ROLE role_name WITH PASSWORD '123456'; ALTER ROLE role_name WITH LOGIN;
2、赋权
GRANT SELECT ON TABLE bi.table_name TO user_name;
grant语法参见:http://www.php100.com/manual/PostgreSQL8/sql-grant.html
四、杀查询
SELECT pg_cancel_backend(PID)
只能kill select操作;
session还在,未提交事务回滚
SELECT pg_terminate_backend(PID)
这种可以kill掉各种操作(select、update、delete、drop等)操作
中断session,未提交事务回滚
五、其他
1、数据库启动时间
select pg_postmaster_start_time();
2、列出所有模式名:
\dnS
3、退出PSQL:
\q // 谁能告诉我不带注释为啥显示不出来?
4、查看greenplum版本:
psql --version
参考资料:
查看Postgresql的连接状况:http://my.oschina.net/lamciuloeng/blog/138097
GreenPlum获取table、schema及其database大小:http://blog.csdn.net/sptoor/article/details/7572313
PostgreSQL 8.1中文文档:系统管理函数:http://www.php100.com/manual/PostgreSQL8/functions-admin.html
GP建表的一些事:http://www.itpub.net/thread-1411396-1-1.html
GP角色管理:http://www.jb51.net/article/40300.htm