暂无图片
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


请输入正文
提交
相关推荐
postgresql 为什么给一个账号在public schema下赋了权限 ,创建了新schema后,没有新schema table的权限?
回答 1
已采纳
publicschema是默认赋权的,不需要的话可以回收权限,revokeallondatabasexxxfrompublic;,而新建的schema修改owner后就有权限了,如,\cxxxdbcr
postgres 库order by 不加limit 排序不准确,这个问题有计划处理吗?
回答 1
不应该吧,这是最基本的功能。截图看下呢。
创建一个独立的备份用户,该如何创建?
回答 1
创建用户并设置密码:CREATEROLEbackupuserWITHLOGINPASSWORD'backuppassword';指定数据库访问权限(可选):GRANTCONNECTONDATABASE
postgresql如何修改某个分区的range范围?
回答 1
已采纳
关于分区调整的modb上有一个文章介绍比较详细,供您参考和测试https://www.modb.pro/db/29750
postgresql 能不能实现 EXCEL中透视效果?
回答 1
可以,例如CREATEEXTENSIONIFNOTEXISTStablefunc;CREATETABLEct(idSERIAL,rowidTEXT,attributeTEXT,valueTEXT);I
pgbouncer配置文件修改后,并加载后,pool_mode字段为空
回答 2
你执行showconfig;命令poolmode显示的什么?
PostgreSQL 为什么Archive 缓慢或不归档,问题的原因在哪里
回答 2
1.归档进程需要遍历所有.ready文件从而找到最老文件,在业务繁忙的机器且缓慢的备份存储下,就会有许多WAL文件归档滞后。2.如果archivecommand执行时出错,归档进程在重试前会等待1秒,
postgresql 中等待事件如何查看?
回答 1
已采纳
PG中可以通过系统表pgstatactivity查看等待事件,这张表的waiteventtype字段表示等待事件的类型。
请问postgreSQL 如何配置对大小写不敏感?
回答 2
如果是应用层要保持oracle大写习惯,可以修改jdbc驱动,参考:https://www.modb.pro/db/13628
如果postgreSQL数据库的字段经常变化,有什么好的方案适应?
回答 1
已采纳
字段变化,那就存成一个json,程序取的时候根据规则解析