如何在greenplum开源版本中使用pg_stat_statements扩展?

问题描述 投票:0回答:1

我正在尝试使用经过修改的greenplum开源版本进行开发。 greenplum版本是Greenplum Database 6.0.0-beta.1 build dev(基于PostgreSQL 9.4.24)。

我想将pg_stat_statements扩展名添加到我的数据库中,并且确实按照https://www.postgresql.org/docs/9.5/pgstatstatements.html的要求将其安装在数据库中。但是,此扩展无法正常工作。它仅记录不可计划的查询和实用程序查询。对于修改我的表的所有可计划查询,没有一条记录。

我的问题是,pg_stat_statements与greenplum兼容吗?由于我没有使用官方版本,因此我想确保原始版本可以与pg_stat_statements一起使用。如果是这样,如何使用它来跟踪greeplum中的所有sql查询?谢谢。

下面是不记录我的选择查询的示例。

postgres=# select pg_stat_statements_reset();
 pg_stat_statements_reset 
--------------------------

(1 row)

postgres=# select query from pg_stat_statements;
               query                
------------------------------------
 select pg_stat_statements_reset();
(1 row)

postgres=# select * from test;
 id | num 
----+-----
  1 |   2
  3 |   4
(2 rows)

postgres=# select query from pg_stat_statements;
               query                
------------------------------------
 select pg_stat_statements_reset();
(1 row)

greenplum pg-stat-statements
1个回答
0
投票

这是我从@ leskin-in那里得到的青菜松散的东西:

我想目前这是不可能的。当Greenplum执行“常规”查询时,每个Greenplum段都充当一个独立的PostgreSQL实例,该实例执行由GPDB主服务器创建的计划。pg_stat_statements跟踪单个PostgreSQL实例的资源使用情况;结果,在GPDB中,它可以独立跟踪每个段的资源消耗。PostgreSQL pg_stat_statements没有处理一些复杂的问题。一个示例是GPDB使用切片。在GPDB段上,这些是计划树的独立部分,并作为独立查询执行。我想在当前版本的GPDB主数据库上对pg_stat_statemens进行查询时,检索到的结果仅用于主数据库。由于“正常”查询大部分是按段执行的,因此结果与查询实际消耗的资源不一致。在开源的Greenplum 5和6中,有一个Greenplum特定的实用程序gpperfmon。它提供了pg_stat_statements的某些功能,并且支持群集(显示整个群集的实际资源消耗,以及几个特定于群集的指标)。

© www.soinside.com 2019 - 2024. All rights reserved.