【问题标题】:How can I reset pg_stat_user_tables on Heroku? (pg_stat_reset() requires superuser)如何在 Heroku 上重置 pg_stat_user_tables? (pg_stat_reset() 需要超级用户)
【发布时间】:2013-01-16 11:31:22
【问题描述】:

我正在使用 Heroku Postgres,想看看在我的数据库中添加一些额外索引的效果。

我正在查询pg_stat_user_tables 以查看使用索引的查询比例,但我相信这是使用自我创建数据库以来的统计数据。

我知道运行 SELECT pg_stat_reset(); 会重置这些统计信息,但是当我尝试在 pg:psql 控制台中运行它时出现错误:

ERROR:  must be superuser to reset statistics counters

还有其他方法可以通过 Heroku Postgres 生产数据库实现这一目标吗?

【问题讨论】:

  • Heroku 上的 db 统计信息重置成功了吗?
  • 不,我仍然不知道该怎么做。你知道吗?

标签: performance postgresql heroku indexing


【解决方案1】:

我今天通过支持请求发现现在已添加:

heroku plugins:install git://github.com/heroku/heroku-pg-extras.git

heroku pg:stats_reset

【讨论】:

    【解决方案2】:

    重现执行这些查询的场景或测试对您来说有多容易?你能做到以下几点吗?

    1. 在 heroku 上创建一个新的测试应用和测试数据库
    2. 使用旧索引部署旧版本的应用(如果复制整个数据库不可行,则使用代表性数据子集)
    3. 运行您的查询或测试,或运行您的应用程序
    4. 注意数据库统计信息
    5. 删除测试数据库并创建一个新数据库
    6. 用您的数据填充新的测试数据库,并添加新的索引
    7. 将测试应用指向新数据库
    8. 再次运行查询或测试
    9. 注意新的数据库静态

    希望您能够轻松创建一组具有代表性的数据,让您更轻松地测试您的查询。

    【讨论】:

    • 您好 culix,感谢您的回答。我正在查看的数据库在我们的实时站点上。我们没有全面的测试套件来测试应用程序到那种程度,所以它不会那么容易。是的,拥有一套密集测试的测试集对于这种事情来说会很棒。虽然我一直在寻找一种方法来直接在 Heroku 上重置统计信息,以查看生产中真实数据的实际影响。
    猜你喜欢
    • 1970-01-01
    • 2015-09-01
    • 2021-08-18
    • 2015-03-25
    • 1970-01-01
    • 2016-01-21
    • 2013-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多