从单个临时表填充星型模式的最佳方法是什么。数据负载有数百万行,星型模式是一个包含 10 个关联维度表的事实表。
场景 1.首先对维度进行顺序插入,然后对事实表进行大插入,在该事实表中,我将临时表与更新的维度表连接起来。我在这里最大的担忧是由于大量数据导致并发插入维度/事实表而可能发生的锁定。
场景 2.将数据加载拆分为更小的批次(10k 行)并循环遍历整个临时表并以与场景 1中所述相同的方式插入批次。我在这里看到的问题是循环遍历带有游标的大表. 另外,如果其中一个批次无法插入数据,我需要回滚之前完成的所有插入的更改。
场景 3.编写一个大的INSERT ALL语句并在整个插入期间锁定星型模式。此外,对于锁定问题,我将有一个复杂的插入语句,它必须保存插入语句的所有业务逻辑(调试和维护的噩梦)