Postgresql postgres查询优化合并索引

Postgresql postgres查询优化合并索引,postgresql,performance,query-optimization,Postgresql,Performance,Query Optimization,我在oracle的微调方面很有经验,但在postgres中我无法提高性能。 问题陈述:我需要从一个postgres表中聚合行,该表在一个月内有大量列(110)和1.75亿行。聚合以外的查询有一个非常简单的where子句: where time between '2019-03-15' and '2019-04-15' and org_name in ('xxx','yyy'.. 15 elements) 对于每个“时间”idx\U time列和“组织名称”idx\U org\U名称,表

我在oracle的微调方面很有经验,但在postgres中我无法提高性能。 问题陈述:我需要从一个postgres表中聚合行,该表在一个月内有大量列(110)和1.75亿行。聚合以外的查询有一个非常简单的where子句:

where time between '2019-03-15' and '2019-04-15'   
 and org_name in ('xxx','yyy'.. 15 elements)
对于每个“时间”idx\U time列和“组织名称”idx\U org\U名称,表上都有单独的btree索引,但没有复合索引

我尝试用('org_name','time')创建新索引,但我的经理不想更改任何内容。 我怎样才能让它跑得更快?现在需要15分钟(如果组织名称较小,则需要6分钟)。大部分时间用于从表中访问数据

并行执行可能吗

谢谢,杰

查询解释分析:


Postgres不支持查询提示。可以做的任何事情都将涉及创建索引或其他类型的模式更改(引入分区等)。如果不能添加额外的索引是业务需求,那么什么也做不了。FWIW,我不认为PG根据您的描述实际加载了所有175M行;发布解释分析的输出将大大澄清问题。您应该向我们展示解释分析(以及查询本身,尽管没有从选择列表中列出175列),而不是您对它的解释。连接发生在表(或关系)之间,因此在只有一个关系的查询中存在合并连接是没有意义的。请使用
解释(分析、缓冲区、格式文本)
(不仅仅是“简单”解释)添加生成的问题,并确保防止缩进计划。粘贴文本,然后将
`
放在计划前一行和计划后一行。还请包括所有索引的完整
create index
语句。我添加了解释分析,更改了OP本身的内容,删除了我的想法。