ストアド プロシージャに次のクエリがあります。
UPDATE dbo.CRM_tblActivityStore
SET StoDateChngFlg = CASE
WHEN x.STAGE_STAD <> x.ACTSTR_STAD THEN 1 ELSE 0 END
FROM (SELECT CASE
WHEN sd.stad = '00000000' THEN '12-31-2049' ELSE CONVERT (DATE, sd.stad)
END AS STAGE_STAD,
CONVERT (DATE, tas.StoDateSTA) AS ACTSTR_STAD,
tas.StoActivityNbr,
sd.Proj_Code,
sd.OrderNbr,
sd.FileNbr
FROM [SCM Server].[OrdrMgmt].dbo.STAGE_StageData AS sd
INNER JOIN
dbo.CRM_tblActivityStore AS tas
ON sd.Proj_Code = tas.StoProjCode
AND sd.OrderNbr = tas.StoOrderNbr
AND sd.FileNbr = tas.StoFile) AS x
INNER JOIN
dbo.CRM_tblActivityStore AS tast
ON tast.StoActivityNbr = x.StoActivityNbr
AND tast.StoProjCode = x.Proj_Code
AND tast.StoOrderNbr = x.OrderNbr
AND tast.StoFile = x.FileNbr;
役立つ可能性のあるその他の情報:
[SCM サーバー].[OrdrMgmt].dbo.STAGE_StageData - 2,000,000 行を超える dbo.CRM_tblActivityStore - 5,000,000 行を超える
これらのテーブルはどれもインデックス化されておらず、プライマリ キーもありません。
こちらは3時間以上かかります。
インデックスを追加すると、どの程度劇的に改善できますか?
それを改善するための他のアイデアはありますか?
ありがとう、
宜蘭