暂无图片
pg12分区表在sql中explain特别慢!
我来答
分享
外包DBA
2020-07-08
pg12分区表在sql中explain特别慢!

【背景】
1、
select 列1,列2 from 分区表 a
inner join 普通表 b
on a.tt=b.tt
返回0条数据
2、分区表的分区键是p_num(不是tt)
3、sql的where条件中也没有对分区键的过滤
4、分区表本身有1000个分区
(从oracle迁移过来,业务有需要不能减少分区数量!!!!!)
5、分区表的tt列上有全局index,执行计划也确实走了该index
【问题】
sql绝大部分时间都消耗在planning time,
真正的execution time < 1s !!!
即使只是explain verbose生成解释计划也要几十秒!

请教各位大佬怎么绕过PG全局index的坑?

从官方文档看,PG的全局index其实还是在所有分区上建分区index,全局index只是起到一个统一管理的作用?

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
外包DBA

由于返回的是0条数据,所以执行计划走tt列上索引时,优化器都自动进行了分区剪枝(每行最后都有never execute)!

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏