如何在PostgreSQL中获取表上每小时插入的计数

如何在PostgreSQL中获取表上每小时插入的计数,postgresql,sql-insert,amazon-aurora,postgresql-11,Postgresql,Sql Insert,Amazon Aurora,Postgresql 11,我需要一个设置,将超过60天的行从PostgreSQL表中删除 我创建了一个函数和一个触发器: BEGIN DELETE FROM table WHERE updateDate < NOW() - INTERVAL '60 days'; RETURN NULL; END; $$; 开始 从表中删除 其中updateDate

我需要一个设置,将超过60天的行从PostgreSQL表中删除

我创建了一个函数和一个触发器:

BEGIN
  DELETE FROM table
    WHERE updateDate < NOW() - INTERVAL '60 days';
  RETURN NULL;
END;
$$;
开始
从表中删除
其中updateDate
但是我相信如果插入频率很高,那么必须经常扫描整个表,这将导致高DB负载。 我可以每小时/每天通过
cron
作业或Lambda函数运行此函数。为了做出决定,我需要每小时都知道表格上的插入内容


是否可以设置一个查询或作业来收集详细信息?

为了计算每小时的记录数,您可以运行以下查询:

SELECT  CAST(updateDate AS date) AS day
    ,   EXTRACT(HOUR FROM updateDate) AS hour
    ,   COUNT(*)
FROM _your_table
WHERE   updateDate BETWEEN ? AND ?
GROUP BY
    1,2
ORDER BY
    1,2;

我们每天在一个表上进行大约4000万次插入,这是按月分区的。三个月后,我们就把分区拆了。这比删除要快得多。

恐怕我不明白你的问题-你是在问如何设置cron作业吗?对此深表歉意@NevilleKuyt,需要一种方法来了解每小时表上发生的事务数(主要是插入)。这很有趣。您的评论和问题标题似乎与问题完全无关。您想要什么:计数插入或删除行?