在 PostgreSQL 中,有没有一种方法可以在单个连接/查询中使用大于1个核心?

9
我知道Postgres可以自动扩展到多个核心和多个连接,但是当我在单个连接上运行大量查询时怎么办?令人沮丧的是,在我的4核系统上,CPU使用率最高只能达到25%。我正在从SQL Server切换,这是目前唯一真正困扰我的问题。SQL Server可以为单个连接/查询使用高达100%的CPU。 我的操作系统是Windows 7 Enterprise 64位,处理器是Xeon 9.2。如果无法解决此问题,是否有人可以解释为什么不认为这是一个问题?这是因为Postgres专注于多用户方案吗?
3个回答

12

目前,PostgreSQL不支持在多个CPU核心上执行单个查询(除了后台写入和wal写入之类的后台工作,如果您正在执行写查询,但这并不真正计算)。这是一项正在进行中的工作,但它是一个长期项目,并且不在PostgreSQL的任何当前版本中。

在所有平台和架构上都是如此。

这绝对是一个问题,但由于PostgreSQL专注于多用户场景,直到最近才成为优先级队列顶部的问题。但是,肯定有人意识到这是一个问题,并努力解决未来版本的问题,只是尚未完成。


2
我如何跟踪使用多个核心进行单个查询的开发进展? - Noah Watkins

4

2

并不是说这不是一个问题,而是需要进行基本的架构更改。它的使用案例非常专业化。它只能在数据仓库类型的环境中帮助你一次执行长时间查询 - 并且查询是 CPU 绑定的,而不是通常会受到磁盘 I/O 绑定的影响。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接