postgresql - 使用 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 子句过滤不受此问题影响的同一字段。
我试图弄清楚我们如何确定突然导致此问题的原因以及我们如何解决此问题?
解决方案
推荐阅读
- python - 如何在 Python 中高效地创建多个变量?
- c# - 如何使用xamarin c#在listview的同一行中划分两列
- javascript - 通过 createObjectURL 的 Blob 视频不起作用
- c++ - OpenGL如何在模板测试失败且深度测试成功时写入模板缓冲区?
- c++ - 在向量末尾找到一个周期的最大频率的最快方法?
- javascript - 调整精灵大小会导致空引用异常
- python - 根据列条件从单个 DataFrame 创建多个 DataFrame
- python-3.x - Pyinstaller .exe 解压到 ...\local\Temp 但找不到 python37.dll
- vba - 如何在第一个空单元格中复制和粘贴并在完成时结束
- java - Gradle 任务以创建可运行的胖 jar