393085432 行の VIEWING_17to31_aug_server というテーブルがあります。
結合条件でフィールドを更新しようとしていました (結合条件は正しいです)。しかし、クエリの一時スペースを超えたため、クエリを実行できませんでした。
次に、中断しなかったが、現在は何年も実行されているwhileループを使用しようとしました。
CREATE VARIABLE @var_period_start datetime;
CREATE VARIABLE @var_period_end datetime;
CREATE VARIABLE @scanning_day datetime;
SET @var_period_start = '2013-08-17';
SET @var_period_end = '2013-08-31';
SET @scanning_day = @var_period_start;
while @scanning_day <= dateadd(dd,0,@var_period_end)
begin
UPDATE VIEWING_17to31_aug_server
SET A.calculated_scaling_weight = B.calculated_scaling_weight
FROM VIEWING_17to31_aug_server AS A
LEFT JOIN sk_prod.viq_viewing_data_scaling AS B
ON A.ACCOUNT_NUMBER = B.ACCOUNT_NUMBER
AND A.VIEWING_DAY = B.ADJUSTED_EVENT_START_DATE_VESPA
AND A.VIEWING_DAY = @SCANNING_DAY
End
もっと早く終わらせる方法って他にある?動的実行は役に立ちますか?