最佳做法是在一个很大的表格中更新最近3个月的数据

时间:2019-06-24 20:29:22

标签: sql-server sql-update

我有2张桌子:

  1. 历史记录表A(100亿条记录,所有列均存储非聚集列,该表每6个月进行分区)
  2. 暂存表B(2000条记录,无分区)

我想将表B与表A的最近3个月的数据进行比较,如果表A的数据较旧,我将用表B的数据进行更新。

我的更新查询如下:

UPDATE COLUMN A=COLUMN B
FROM B 
JOIN A
WHERE DATE COLUMN B>DATE COLUMN A

问题是:此查询需要5个小时才能仅更新2000条记录。表A和表B之间的JOIN时间过长。

我已经做了很多尝试来修改查询(例如:在“日期”列上添加非聚集索引),但是没有更好的结果

如何提高此更新查询的性能?

0 个答案:

没有答案