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

Dan*_*Dan 7 postgresql indexing performance heroku

我正在使用Heroku Postgres,并希望了解为我的数据库添加一些额外索引的效果.

我在查询pg_stat_user_tables查看使用索引的查询比例,但我相信自从我创建数据库以来就一直在使用统计信息.

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

ERROR:  must be superuser to reset statistics counters
Run Code Online (Sandbox Code Playgroud)

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

cul*_*lix 2

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

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

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