我在一个包含乘客预订的Sql服务器表中有一些航班预订数据。
下面的查询突出显示了所有涉及到的表以及连接
"SELECT distinct * FROM
Booking B
JOIN BookingPassenger BP
ON B.BookingId = BP.BookingId
JOIN PassengerJourneyLeg PJL
ON PJL.PassengerId = BP.PassengerId
JOIN InventoryLeg IL
ON IL.InventoryLegId = PJL.InventoryLegId
join passenge
我使用的是在Amazon上托管的Postgres数据仓库。当试图从同一数据库中的另一个表中更新事实表的一列(2500万行)时,该查询需要几天时间运行。为什么会发生这种情况,我怎样才能提高这种性能?我知道PG更适合OLTP而不是OLAP,但是选择查询性能在这个表上通常是相当不错的。
所讨论的查询如下:
UPDATE a
SET a.value = b.value
FROM b
WHERE a.id = b.id
b是不同架构中的临时表,但具有与a相同的行数的数据库。两个表在id上都有主键。value列上没有索引或约束。有些视图依赖于表a,但没有外键。
我在RDS上使用PG 9.5。一般用途(SS