创建视图查询所有segment 实例上的会话状态
2017-12-06 09:48
323 查看
在greenplumdb 中,有时候我们需要查询sql 在每个segment instance 上的会话状态信息,用于诊断性能问题等等。
在master上,可以通过查询 pg_stat_activity 视图查出数据库里面的SQL执行会话信息,例如:
通过如下代码,可以创建一个视图,可以查出包括master和 所有segment的 sql 信息,代码如下:
如果要查询某个segment上的sql信息,可以执行如下sql:
在master上,可以通过查询 pg_stat_activity 视图查出数据库里面的SQL执行会话信息,例如:
testdb1=# select * from pg_stat_activity; datid | datname | procpid | sess_id | usesysid | usename | current_query | waiting | query_start | backend_start | client_addr | client_port | application_name | xact_start | waiting_reason -------+---------+---------+---------+----------+---------+---------------------------------+---------+-------------------------------+---------------------- ---------+-------------+-------------+------------------+-------------------------------+---------------- 17146 | testdb1 | 10366 | 12 | 10 | gpadmin | <IDLE> | f | 2017-12-04 22:22:03.641018-08 | 2017-12-04 22:21:50.7 3754-08 | | -1 | psql | | 17146 | testdb1 | 11836 | 14 | 10 | gpadmin | <IDLE> | f | 2017-12-05 17:24:21.83859-08 | 2017-12-05 17:10:06.9 82097-08 | | -1 | psql | | 17146 | testdb1 | 12158 | 15 | 10 | gpadmin | <IDLE> in transaction | f | 2017-12-05 17:22:10.787534-08 | 2017-12-05 17:22:06.0 46925-08 | | -1 | psql | 2017-12-05 17:22:10.787534-08 | 17146 | testdb1 | 12496 | 17 | 10 | gpadmin | select * from pg_stat_activity; | f | 2017-12-05 17:39:16.108899-08 | 2017-12-05 17:34:46.3 84621-08 | | -1 | psql | 2017-12-05 17:39:16.108899-08 | (4 rows) testdb1=#
通过如下代码,可以创建一个视图,可以查出包括master和 所有segment的 sql 信息,代码如下:
create function get_segment_id() returns int as $$ declare begin return current_setting('gp_contentid'); end; $$ language plpgsql; create or replace view all_segment_activity as select get_segment_id() as gp_segment_id,* from gp_dist_random('pg_stat_activity') union all select get_segment_id() as gp_segment_id,* from only pg_stat_activity;
如果要查询某个segment上的sql信息,可以执行如下sql:
testdb1=# select * from all_segment_activity where gp_segment_id =0; gp_segment_id | datid | datname | procpid | sess_id | usesysid | usename | current_query | waiting | q uery_start | backend_start | client_addr | client_port | application_name | xact_start | waiting_reason ---------------+-------+---------+---------+---------+----------+---------+------------------------------------------------------------+---------+----------- --------------------+-------------------------------+-----------------+-------------+------------------+-------------------------------+---------------- 0 | 17146 | testdb1 | 12161 | 15 | 10 | gpadmin | <IDLE> in transaction | f | 2017-12-05 17:22:10.799-08 | 2017-12-05 17:22:10.789897-08 | 192.168.189.128 | 39835 | | 2017-12-05 17:22:10.799-08 | 0 | 17146 | testdb1 | 12763 | 14 | 10 | gpadmin | select * from all_segment_activity where gp_segment_id =0; | f | 2017-12-05 17:45:55.995377-08 | 2017-12-05 17:45:44.409823-08 | 192.168.189.128 | 39893 | | 2017-12-05 17:45:55.995377-08 | (2 rows)
相关文章推荐
- 创建函数查询greenplum使用到某个数据表的所有视图
- sql server查询所有表名、字段名、类型、长度 和 存储过程、视图 的创建语句
- sqlserver查询所有表名、字段名、类型、长度和存储过程、视图的创建语句
- 分页查询产品信息案例;第一步:创建产品页面,向服务器发送请求(获取所有产品信息)
- SQL 综合应用(1.创建临时表,为后续查询所用) 实例_(学生,课程表,选修表)
- oracle实验5:查询当前用户的所有表和视图
- 使用Mutex实现会话状态下单实例运行和系统范围内单实例运行
- SQL Server中查询所有的表、视图、列和存储过程
- Android基于XMPP Smack Openfire下学习开发IM(三)会议室创建、加入以及查询会议室中所有成员等
- 例题:学习数据库查询。学生信息表的创建,主外键关系,以及45道题的查询实例。主要知识点在讲页45页,和讲页65页
- 用Python删除本地目录下某一时间点之前创建的所有文件的实例
- ORDER BY 子句在视图、内嵌函数、派生表和子查询中无效(消息 1033,级别 15,状态 1)
- MySQL查询指定库中所有的表记录的行数,表的大小,创建时间,字符集
- Android基于XMPP Smack Openfire下学习开发IM(三)会议室创建、加入以及查询会议室中所有成员等
- Ejb in action(四)——购物车实例演示有状态会话Bean
- 会话状态已创建一个会话ID,但由于响应已被应用程序刷新而无法保存它
- 关于无状态会话bean需要组件池存放多个实例的原因
- Android基于XMPP Smack Openfire下学习开发IM(三)会议室创建、加入以及查询会议室中所有成员等
- 分页查询产品信息,第二步:创建一个servlet来接收请求,获取所有的产品信息
- 动态创建的控件不能保存视图状态