【发布时间】:2013-04-06 20:37:44
【问题描述】:
我有一个表格查询:
SELECT a.id, b.colb, c.colc, d.cold, ...
FROM a JOIN b on a.id=b.id
JOIN c on a.id=c.id
JOIN d on a.id=d.id
JOIN e on a.id=e.id
...
这里的每个表实际上都是一个表值函数。该查询的运行时间超过一分钟,但是当我手动创建临时表 (CREATE TEMPORARY TABLE ax as SELECT * from a) 并针对这些临时表运行查询时,需要几毫秒(创建表也需要几毫秒)。
什么可能导致如此大的性能差异(至少两个数量级)?
【问题讨论】:
-
如果您可以在查询中显示您的 PostgreSQL 版本和
explain analyze的输出,将会很有帮助
标签: sql postgresql database-performance