我知道 Postgres 会自动扩展到具有多个连接的多核,但是当我在单个连接上运行大量查询时呢?令人沮丧的是,我的 4 核系统的 CPU 使用率最高达到 25%。
我正在从 SQL Server 切换到 SQL Server,这是迄今为止唯一真正让我烦恼的事情。 SQL Server 最多将 100% 的 CPU 用于单个连接/查询。
如果需要的话,我在配备 Xeon 处理器的 Windows 7 Enterprise 64 位系统上运行 9.2。
如果没有办法解决这个问题,有人可以解决为什么这不被视为问题吗?是因为 Postgres 专注于多用户场景吗?
最佳答案
PostgreSQL 当前不支持跨多个 CPU 内核执行单个查询(如果您正在执行写入查询,则减去后台写入和 wal 写入等后台操作,但这并不重要)。这项工作正在进行中,但它是一个长期项目,并且不在任何当前版本的 PostgreSQL 中。
这在所有平台和架构上都是一样的。
这绝对是一个问题,但是正如您所说,PostgreSQL 专注于多用户场景,因此直到最近它才冒泡到优先级队列的顶部。但肯定有人意识到这是一个问题,并致力于为 future 的版本解决它,只是还没有完成。
关于performance - 有什么方法可以在 PostgreSQL 中使用 >1 Core 进行单个连接/查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18268130/