我是Teradata
&的新手幸运的是,有机会同时处理两个DDL-DML
语句。
我观察到的一件事是,当UPDATE
具有大量记录的表中的数据时,Teradata非常慢。
我在Google
上找到执行此更新的最简单方法是使用INSERT-SELECT
写一个CASE
语句,其中包含要使用新值更新的列。
但是当这种情况到达Data Warehouse
环境时,当我们需要从包含数百万行的表中更新多个列时,该怎么办?
哪种方法最好?
INSERT-SELECT
仅限OR MERGE-UPDATE
或MLOAD
?
不确定上述任何方法是否未用于此UPDATE
操作。
提前谢谢!
答案 0 :(得分:0)
在企业级,我们预计数量巨大,而更新往往是某些预定作业/脚本的一部分。
对于大量数据,更新是一项代价高昂的操作,如果更新失败(由于备用日志),则会在一段时间内阻止表的风险。尽管脚本经过良好测试,并且在生产环境中很少发生故障,但最好将需要更新的数据加载到所需形式的临时表中,并在删除匹配的记录后插回到同一个表中以维护SCD -1(我们不保留历史的地方)。