2010-03-29 56 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