首页 > 解决方案 > 使用 current_date 时,Postgres SQL 查询运行速度非常慢

问题描述

我们有一个 SQL 查询,它使用 where 子句按日期过滤数据集。目前查询中的where子句设置如下——

WHERE date_field BETWEEN current_date - integer @interval AND current_date (where the interval is the last 90 days)

在过去的几天里,这个查询突然开始变慢。它已经开始需要超过 10 分钟。如果我们从这个查询中删除 current_date 并在这个查询中硬编码日期,它会像以前一样在不到 10 秒内运行。

硬编码版本

WHERE date_field BETWEEN '03-12-2020' AND '06-12-2020'

此查询针对 Amazon Aurora 中的 Postgres 引擎运行。在其他查询中使用相同的 where 子句过滤不受此问题影响的同一字段。

我试图弄清楚我们如何确定突然导致此问题的原因以及我们如何解决此问题?

标签: postgresqlamazon-aurora

解决方案


推荐阅读