表上的 DML 统计信息

发布于 2024-08-27 03:25:37 字数 549 浏览 8 评论 0原文

我们使用 PostgreSQL 8.2

在我们的应用程序中,我们大量使用临时表(REPORTTEMP)来生成报告 生成目的。所有类型的 DML 语句都在此表中执行,但 UPDATE INSERT 和 DELETE 的语句相对较少。所以,在任何时候 一段时间内,交易完成后,该表中的记录数将 永远为零。

我的问题是,如何找出有多少 INSERT、UPDATE 和 DELETE 发生在这个表中,即表的命中数。我需要这个统计数据来进一步调整 性能方面。

我还在这里阅读了PostgreSQL 的统计收集器 http://www.postgresql.org/docs/8.2/interactive/监控统计.html 但这是以额外的运行时开销为代价的。

在启用此统计收集器之前,是否有任何不同/更好的方法 我们能查出这个吗?

We're using PostgreSQL 8.2.

In our application, we heavily use a temporary table (REPORTTEMP) for report
generation purpose. All type of DML statements are performed in this table, but UPDATE
statement is comparatively very low with INSERTs and DELETEs. So, at any point
of time, after completion of the transaction, record count in this table will
always be zero.

My question is, how do I find out how many INSERTs, UPDATEs and DELETEs are
happening in this table, that is hit count of a table. I require this statistics for further tuning from the
performance aspect.

I also read about PostgreSQL's Statistics Collector here
http://www.postgresql.org/docs/8.2/interactive/monitoring-stats.html
but this comes at the expense of additional run-time overhead.

Before enabling this statistcs collector, is there any different/better way in which
we can find out this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

感情废物 2024-09-03 03:25:37

在删除临时表之前(或关闭连接之前),将 pg_stats 选择到存储所有信息的表中:

INSERT INTO history SELECT * FROM pg_stat_user_tables WHERE relname = 'temp_table';

Just before dropping the temp table (or before closing the connection), select pg_stats into a table where you store all the information:

INSERT INTO history SELECT * FROM pg_stat_user_tables WHERE relname = 'temp_table';
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文