这些表在 PostgreSQL 9 数据库中进行分区。当我运行以下脚本时:
select * from node_channel_summary
where report_date between '2012-11-01' AND '2012-11-02';
它从正确的表中发送数据而不进行全表扫描。然而,如果我运行这个脚本:
select * from node_channel_summary
where report_date between trunc(sysdate)-30 AND trunc(sysdate)-29;
在这种情况下,它会进行一次全表扫描,其性能是不可接受的。-30 和 -29 将被参数替换。
在做了一些研究之后,Postgres 不能与函数和分区表一起正常工作。
有人知道解决此问题的方法吗?