Postgres在升级到9.5

时间:2017-07-25 19:36:34

标签: postgresql postgresql-9.5

我们最近使用pg_upgrade将OLTP Production DB(2TB)从v9.2.9.21升级到9.5.1.6。

升级没有发生意外,我们已经运行了一周,但是发现优化器忽略了我们最大的两个分区表上的索引。 (注意:38943115的问题不同,迁移的数据没有问题)。

这些表是在BIGINT列上使用单独的Btree索引构造的,优化器先前会在亚秒上返回查询。升级后查询最多需要16分钟(对我们的客户无法使用)。分区<100GB,每个表有2-3个分区。

我们怀疑索引损坏并尝试添加重复索引和分析,但是新索引仍然被忽略,除非我们强制使用enable_seqscan = no或者将random_page_cost减少到2(在系统范围内不实用)。使用新索引的查询响应时间仍然令人震惊(16分钟)。

我们尝试过增加effective_cache_size但没有效果。数据库是24x7,因此我们无法重新索引表/分区。

索引的定义如下:

CREATE INDEX table1_column1_index ON table1 USING btree (column1);
CREATE INDEX table1part1_column1_index ON table1 USING btree (column1);
CREATE INDEX table1part2_column1_index ON table1 USING btree (column1);
CREATE INDEX table1part3_column1_index ON table1 USING btree (column1);

....并对查询中的每个后续列重复(查询计划不使用复合索引)。

是否有人遇到此问题或建议采取进一步措施?

0 个答案:

没有答案