我在一个包含乘客预订的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
我从GitHub工作流中调用了Terraform,其中一个步骤是RDS更新。状态的后端是一个S3桶。Terraform正确地反映了更新的状态(参见下面的日志),但是对RDS数据库实例的更改根本没有反映出来。
下面是地形应用操作的输出-
我还注意到状态文件没有更新回S3。有趣的是,如果我更改实例的名称,它会强制破坏和重新创建,terraform会按照预期完成它的工作。
Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with
我的任务是设计一个Kimball风格的数据仓库。它将位于Server中的prem上。组织物理实现的最佳做法是什么?也就是说,数据仓库是否应该是一个单一的数据库,使用模式来分隔每个数据集市(并且将所有维度都放在自己的模式中,以帮助“驱动”跨市场的重用)?或者,每个数据集市是否应该是自己的数据库(强制所有维度都存在于一个单独的数据库中)?
如果我使用云平台进行数据仓库,比如Azure SQL DB (例如,使用托管实例来允许跨数据库查询),这个决策是否重要?
我尝试使用rename database命令,但失败了,错误如下。我也没有看到通过Amazon RDS控制台停止RDS实例的选项。
mysql> rename database foo to foo_orig;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'database foo to foo_orig' at
我收到一封来自AWS的关于我的一个多AZ RDS实例的电子邮件。他们基本上说要在某一段时间内进行升级:
We are contacting you to inform you that one or more of your Amazon RDS DB instances is scheduled to receive system upgrades during your maintenance window between July 21 2:00 PM and July 28 2:00 PM PDT.
窗口似乎很大,我想减少影响,即使我们是在一个多AZ设置。根据我使用EC2实例的经验,可