我应该如何在Heroku上重置pg_stat_user_tables?(pg_stat_reset()需要超级用户)

7
我正在使用Heroku Postgres,并想查看向我的数据库添加一些额外的索引后的效果。
我正在查询pg_stat_user_tables以查看使用索引的查询比例,但我认为这是使用自从我创建数据库以来的统计数据。
我知道运行SELECT pg_stat_reset();会重置这些统计信息,但当我尝试在pg:psql控制台中运行它时,我收到以下错误:
ERROR:  must be superuser to reset statistics counters

有没有其他方法可以在Heroku的生产数据库中实现这个?

你成功重置了Heroku上的数据库统计数据吗? - thejaz
不,我仍然不知道如何做这个。你知道吗? - Dan
2个回答

3
我今天通过支持请求发现,现在已经添加了以下内容:
heroku插件:安装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上重置统计数据以查看实际生产数据影响的方法。 - Dan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接