【问题标题】:How do I use pg_stat_statements extension in greenplum open source version?如何在 greenplum 开源版本中使用 pg_stat_statements 扩展?
【发布时间】:2020-05-02 17:22:16
【问题描述】:

我正在尝试使用修改后的 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】:

    这是我从 greenplum slack 中的@leskin-in 那里得到的:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-15
      • 2018-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多