我认为Postgres会自动扩展到具有多个连接的多核,但是当我在SINGLE连接上运行大量查询时呢?令人沮丧的是,我的4核系统的CPU使用率最高可达25%。
我正在从SQL Server切换,这是迄今为止唯一真正让我烦恼的事情。对于单个连接/查询,SQL Server将使用高达100%的CPU。
如果重要的话,我在使用Xeon处理器的Windows 7 Enterprise 64位上运行9.2。
如果无法解决这个问题,有人可以解决为什么这不被视为问题吗?是因为Postgres专注于多用户场景吗?
答案 0 :(得分:12)
PostgreSQL当前不支持跨多个CPU核心执行单个查询(如果你正在进行写入查询,则减去背景写作和写作等背景知识,但这并不重要)。它的工作正在进行中,但它是一个长期项目,并不在任何当前版本的PostgreSQL中。
所有平台和架构都是如此。
这肯定是一个问题,但是正如你所说的那样,PostgreSQL专注于多用户场景,直到最近它才被冒泡到优先级队列的顶端。但肯定有人意识到这是一个问题,并且正在努力为未来的版本解决它,它还没有完成。
答案 1 :(得分:4)
有一个外部数据包装器,旨在通过GPU添加并行性,称为pg_strom。我从来没有使用它,它看起来很专业,但也许你(或这里有人)有一个用例。
http://gpuscience.com/software/postgresql-gpu-pgstrom/
答案 2 :(得分:2)
并不是说它不是一个问题。这需要基础架构的改变。它的用例非常专业。它只会对您一次执行一个长查询的数据仓库类型环境有所帮助 - 并且查询是CPU绑定的,而不是通常的磁盘I / O绑定。