我可以将列编入索引以加快日期范围内的慢速加入

时间:2017-12-21 01:29:48

标签: postgresql join indexing

问题:我有一个子查询,它在日历表和库存表上进行内部联接,这种情况很慢,需要加快速度。目前的速度约为120秒。

通常,目的是使用此数据集来计算一年中每一天每种产品的库存水平。

为了加快速度,我可以在日历的日常日期字段(daily_date是唯一的)上放置一个索引来加速查询吗?和/或start_date和end_dates时间戳字段?我不清楚索引的最佳实践。

日历表有一个每日日期字段,该字段在start_date和end_date之间的范围内连接到stock表:

select        dd.daily_date, t.stock_product_name, t.stock_id
          , (12 * extract('years' from (t.warehouse_eta - dd.date_field))) + (30 * extract('months' from (t.warehouse_eta - dd.date_field))) + (extract('days' from (t.warehouse_eta - dd.date_field))) as delivery_time
from          a.dates dd
inner join    stock_availability t on ((dd.daily_date >= t.start_date) and (dd.daily_date <= t.end_date or t.end_date is null))
where         dd.daily_date >= '2017-01-01' and dd.daily_date <= current_date

(我现在打开很多关于索引的Windows标签,但阅读速度很慢。任何介绍链接也都很感激。)

0 个答案:

没有答案
相关问题