2010-03-29 62 views
0

我们使用的是PostgreSQL 8.2桌上的DML统计

在我们的应用程序中,我们大量使用临时表(REPORTTEMP)报告 生成目的。所有类型的DML语句均在此表中执行,但UPDATE 语句对于INSERT和DELETE而言相对较低。因此,在交易完成后的任何时间点 ,此表中的记录计数将始终为零。

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

我也读到PostgreSQL的统计收集这里 http://www.postgresql.org/docs/8.2/interactive/monitoring-stats.html 但是这会造成额外的运行时开销。

在启用此statistcs收集器之前,有什么不同/更好的方法可以找到我们的 ?

回答

1

就在丢弃临时表(或关闭连接之前),选择pg_stats到您存储的所有信息的表:

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

@Frank不过来查询'pg_stat_user_tables',PostgreSQL的统计收集器应启用。任何其他方式找出没有使用统计收集器? – Gnanam 2010-03-30 04:22:20