sql - 具有动态 where 子句的 Postgres 分区表
问题描述
我有一个分区表,用于获取具有 Y 列的记录的 X 列的总和。
如果我使用
where logdate >= '2020-01-01' AND logdate < '2020-02-01'
我得到一个干净的查询计划和执行,而如果我这样做
where logdate >= (SELECT CURRENT_DATE - 30) AND logdate < '2020-02-01'
实际上,SELECT CURRENT_DATE - 30
这只是一个显示初始日期将动态生成的示例- 它使用位图堆扫描和索引扫描遍历所有分区,导致查询执行速度慢 10 倍。
我可以做些什么来改进对给定部分(where 子句)的查询,还是我应该辞职并尝试使用我当前使用的编程语言来操作日期?
解决方案
推荐阅读
- java - 在 servlet 中解析 Json
- c# - ASP.NET Core 服务不会重定向 http:localhost:
到 https 架构 - reactjs - REACT:将项目推送到状态内的数组
- image - TWIG 不应用图像样式,但计算它
- mongodb - 使用 MongoDB 进行模糊搜索,为什么 /1.0/ 匹配 100.0?
- azure - 是否可以将“V2”存储帐户降级为“V1”?
- linux - 多线程应用程序中的 BPF 过滤器
- c++ - 变量在常量表达式中可用的条件
- javascript - PayPal 智能支付按钮中的自定义文件
- java - 运行 sbt 并获取“未解决的依赖项:收到致命警报:access_denied”