作者:lianghc
在greenplum 使用过程中积累的一些常用查询语句,整理出来备忘。欢迎各位留言补充。都是SQL命令以及数据字典的使用。熟悉数据字典非常重要。三个重要的schema:pg_catalog,pg_toolkit,information_schema,其中information_schema 中的数据字典都在视图中,并且这个schema中提供了大量的操作数据字典的函数值得研究。
一 数据库运行状态查询管理
1. greenplum查询正在运行的sql,session
-- 方法1:
SELECT
tt.procpid, -- pid
usename user_name, -- 执行的用户
backend_start, -- 会话开始时间
query_start, -- 查询开始时间
waiting, -- 是否等待执行
now() - query_start AS current_query_time, -- 累计执行时间
now() - backend_start AS current_session_time,*/
current_query,
client_addr , datname
FROM
pg_stat_activity tt
WHERE current_query != '<IDLE>'
ORDER BY current_query_time DESC;
-- 方法2(通过视图查)
SELECT
procpid,
START,
now() - START AS lap,
current_query,
-- count() over() count_num,
t2.rolname,t3.rsqname,
ip
FROM
(
SELECT
backendid,
pg_stat_get_backend_userid(S.backendid) as uid,
pg_stat_get_backend_client_addr(S.backendid) as ip,
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 t1 left join pg_authid t2 on t1.uid=t2.oid