首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PostgreSQL查询在LINUX服务器上执行时间太长了。

PostgreSQL查询在LINUX服务器上执行时间太长了。
EN

Stack Overflow用户
提问于 2020-01-28 11:48:04
回答 2查看 227关注 0票数 0

我最近已经将PostgreSQL数据库部署到Linux服务器上,其中一个存储过程大约需要24到26秒来获取结果。以前,我将PostgreSQL数据库部署到windows服务器上,相同的存储过程只需1到1.5秒。

在这两种情况下,我都用相同的数据库测试了相同的数据量。而且这两台服务器都有相同的配置,如RAM、处理器、..等。

在Linux服务器中执行我的存储过程时,CPU使用率达到100%。

Windows的执行计划:

Linux的执行计划:

如果你有同样的解决方案,请告诉我。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-02-03 10:59:23

这也可能是因为JIT在Linux服务器上发挥作用,而不是在windows上发挥作用。检查linux服务器上的查询执行计划是否包含有关JIT的信息。如果是,请检查windows版本中是否相同。如果不是的话,我怀疑是这样的。

JIT可能会增加更多开销,因此尝试根据系统需求将jit参数(如jit_above_cost、jit_inline_above_cost )更改为适当的值,或者通过设置完全禁用这些参数。

代码语言:javascript
复制
jit=off

代码语言:javascript
复制
jit_above_cost = -1
票数 1
EN

Stack Overflow用户

发布于 2020-01-28 12:08:21

罪魁祸首似乎

代码语言:javascript
复制
billservice.posid = pos.posid

更具体地说,它对pos表进行了序列扫描。它应该在做索引扫描。

检查数据库中这两个文件是否有索引。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59948102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档