暂无图片
Sort Method: external 说明work_mem不够大吗?
我来答
分享
暂无图片 匿名用户
Sort Method: external 说明work_mem不够大吗?

执行计划中有下面的部分输出

Sort Method: external merge Disk: 17136kB


说明work_mem 不够大吗?

我来答
添加附件
收藏
分享
问题补充
3条回答
默认
最新
Maleah

是的,可以适当调大work_mem的值。

执行计划中出现 Sort Method: external 字样,说明需要借助外部文件来进行排序,会有临时文件的生成

1)当执行sort排序、HASH JOIN、中间结果存储、聚合等会用到临时文件,超过了work_mem就会溢出到磁盘,在事务查询和结束后会自动回收

可以通过设置log_temp_files在日志中观察临时文件

2)Sort Method有两种

  • quicksort:快速排序,能够在内存中完成排序操作
  • external sort:外部合并排序,work_mem的值较小,需借助临时文件来完成排序操作

暂无图片 评论
暂无图片 有用 1
打赏 0
watson

是的,可适当调大work_mem的值。

暂无图片 评论
暂无图片 有用 0
打赏 0
阎书利

如果调整的话还是要看你实际的业务情况,不要因为一两个执行频率很低的SQL去随意改动内存相关参数,过大的work_mem和大量并发可能会导致OOM,你可以仔细评估下这个SQL的执行计划,和你业务情况,例如并发,常运行的SQL类型以及这些执行计划涉及的操作是否使用到了work_mem,并且work_mem大小不够导致借助临时文件去完成操作的SQL比例有多少,之后再去考虑是否调整work_mem。否则轻易改动,可能会影响业务的性能,降低用户体验。

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


请输入正文
提交
相关推荐
No package 'libevent' found
回答 2
Theerrormessage"Nopackage'libevent'found"typicallyoccurswhenyou'retryingtocompileorinstallsoftwareth
pg高可用失效
回答 1
已采纳
希望能帮到你https://www.modb.pro/db/15359timeline不一致问题,如何同步1.备库执行checkpoint2.关闭备库,执行noderejoin
postgresql,查询某列中最大值那条记录,sql怎么写最简单高效。
回答 1
已采纳
来自于高性能mysql一书的一个方法。我想同样适用于postgre对这列建一个倒顺索引 然后selectfieldfromtlimit1就可以。性能最好
询问权限
回答 1
在PostgreSQL中,要授予用户对特定表的查询权限,语法如下:GRANTSELECT(columnname)ONtablenameTOusername;因此,正确的语句是:B.grantselec
有没有办法让postgreSQL客户端不输出中文?
回答 2
初始化数据库实例时,设置 lcmessages'C',可参考:如何让数据库以中文显示消息?
pg中执行计划中常用的操作符对应的解释?
回答 1
PG执行计划解析https://blog.csdn.net/weixin37692493/article/details/109232501
postgresql怎么查行数?
回答 2
count一下这个表。
PG文档翻译疑问
回答 10
已采纳
pg的DDL是可以回滚的。
wal相关的几个问题?
回答 1
第2个问题可以在会话里使用altertable切换unlogged/logged表来控制是否写wal
求助,当前有一个需求,要求把Postgresql数据库中的数据根据dataTime字段按一定的时间间隔获取数据
回答 2
已采纳
使用窗口函数实现,窗口函数的好处是可以使用其他各种汇聚函数。使用彭冲老师的测试表:每10second,一个区间selectdistinctfirstvalue(dt)over(partitionbyf