为两个大表之间的单个列更新查询



我有一个表,有5800万条记录,有30列,我想通过映射另一个表,有4500万条记录,有两列来更新一列。

MERGE INTO /*+ PARALLEL(tbl_temp) */ tbl_temp tcm
USING (SELECT frn.id, frn.risk FROM temp_new frn ) a
ON (a.id = tcm.fi_id) WHEN MATCHED THEN UPDATE 
SET tcm.risk_label=a.risk;

上面是我尝试过的查询,但它需要超过12个小时。我也尝试过批量更新,批量大小为10000,但同样的问题。还有其他方法可以提高查询

的性能吗?

如果您有足够的空闲空间,请使用重新创建表-创建具有临时名称和相同结构的新表,使用insert作为从当前表左连接到映射表的选择,使用并行和追加提示。重命名当前表,重命名新表为实际名称。将所有索引/同义词、授权/触发器等从旧表移动到新表。测试您的应用程序。

相关内容

  • 没有找到相关文章

最新更新