【发布时间】:2020-01-28 11:48:04
【问题描述】:
我最近将 PostgreSQL 数据库部署到 Linux 服务器,其中一个存储过程需要大约 24 到 26 秒才能获取结果。以前我将 PostgreSQL 数据库部署到 windows 服务器,相同的存储过程只需要大约 1 到 1.5 秒。
在这两种情况下,我都使用具有相同数据量的相同数据库进行了测试。并且两台服务器都具有相同的配置,例如 RAM、处理器等。
在 Linux 服务器中执行我的存储过程时,CPU 使用率达到 100%。
Windows 执行计划:
Linux 执行计划:
如果您对此有任何解决方案,请告诉我。
【问题讨论】:
-
请添加 1) 过程/查询,2) 示例数据,3) 表/索引结构和 4)
explain analyze -
你能显示存储过程吗?它可能有多种不同的原因为什么它这么慢,但如果你从表中选择,我会首先检查索引......
-
这是不可读的。请转
EXPLAIN (ANALYZE, BUFFERS) SELECT ...并将输出(格式化)复制并粘贴到问题中。 -
是的,成本配置相同,我没有对两台服务器进行任何更改。
标签: linux postgresql .net-core postgresql-12