【问题标题】:DML statistics on a table表上的 DML 统计信息
【发布时间】:2011-02-02 01:12:11
【问题描述】:

我们正在使用 PostgreSQL 8.2

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

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

我还在这里阅读了 PostgreSQL 的 Statistics Collector http://www.postgresql.org/docs/8.2/interactive/monitoring-stats.html 但这是以额外的运行时开销为代价的。

在启用此 statistcs 收集器之前,是否有任何不同/更好的方式 我们能找出来吗?

【问题讨论】:

    标签: database postgresql temp-tables


    【解决方案1】:

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

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

    【讨论】:

    • @Frank 仍然要查询pg_stat_user_tables,应该启用 PostgreSQL 统计收集器。不使用统计收集器还有其他方法可以找出吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-28
    • 2016-11-15
    • 1970-01-01
    • 2013-11-12
    • 1970-01-01
    • 2015-03-15
    • 1970-01-01
    相关资源
    最近更新 更多