~90,000 行のテーブルの列を更新しようとしています。テーブルを更新する最適化された方法はありますか?
必要なインデックスを追加しました..テーブルのスキャン/ルックアップが発生しないようにします。それでも、実行にはかなりの時間がかかります (1 時間)。
私のシナリオ:
DECLARE @ParentID NVARCHAR(100),
@Con_ERID INT
DECLARE @MaxCount INT,
@MinCount INT,
@Id INT
SELECT @MaxCount = MAX(Id) from [dbo].[ParentIDStaging] where Type='grid'
SET @MinCount = 1
WHILE @MinCount <= @MaxCount
BEGIN
SELECT @Id = ConID FROM [dbo].[ParentIDStaging] WHERE Id = @MinCount and Type = 'grid'
IF @Id IS NOT NULL
BEGIN
SELECT @Con_ERID = ErId FROM Context (NOLOCK) Where ConId = @Id
SELECT @ParentID = Identifier FROM Recording (NOLOCK) where ErId = @Con_ERID
BEGIN TRAN
UPDATE [ParentIDStaging] WITH (ROWLOCK)
SET [ParentID] = @ParentID
WHERE ContentType = 'grid'
AND ConID = @Id
COMMIT
END
SET @MinCount = @MinCount + 1
END