使用 Google Cloud SQL 重置 pg_stat_statements

roy*_*hri 6 postgresql google-cloud-sql google-cloud-platform

我正在使用在 Google Cloud SQL 中运行的 PostgreSQL 实例。

我正在尝试重置 pg_stat_statements,因为我们对表进行了改进并添加了一些索引。不幸的是,当我尝试使用主postgres用户运行以下命令时:

select pg_stat_reset();
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息:

ERROR:  permission denied for function pg_stat_reset
Run Code Online (Sandbox Code Playgroud)

我知道这是一项托管服务,有些事情需要隔离,但能够重置 pg_stat 很重要,这样您就可以调整数据库。基本上,如果您进行更改,则需要能够重置 pg_stat 以便其输出不会因更改之前的数据而受到污染。即使在托管服务中,这种调整对于能够做到也是至关重要的。

有谁知道我如何让它与 Google Cloud SQL 一起使用?

谢谢。

roy*_*hri 5

我可以就此向 GoogleCloud 支持人员询问,这是他们的回复:

pg_stat_reset() 需要超级用户权限。但它在 CloudSQL 中不受支持。我们建议您使用 pg_stat_statements_reset() 函数来重置统计信息。为此,必须从 Cloud Console 创建用户(即默认 PostgreSQL 用户),或者默认 PostgreSQL 用户应通过执行以下命令授予对此函数的 EXECUTE 权限: grant execute on function pg_stat_statements_reset() to ;

我能够使用 postgres 用户成功使用此命令。请注意,此函数必须在启用 pg_stat_statement 的数据库上运行。