我有一个脚本正在运行并更正我们数据库中一个表上未启用的两个字段。该脚本针对一个行超过400k的表运行,并且需要永远运行。
USE <DB>
GO
update ApplicationAnswers set Enabled = 1
where QuestionID = 1778 and AwardYearID in(9,10)
update ApplicationAnswers set Enabled = 1
where QuestionID = 1212 and AwardYearID in(9,10)
无论如何,我可以优化它以更有效地运行?如果您需要更多信息,请与我们联系。我在这里问过DBA,并没有收到他们的回复。感谢
答案 0 :(得分:2)
我看到的唯一优化是直接引用表
schemaName.dbo.ApplicationAnswers
然后将它们组合
update schemaName.dbo.ApplicationAnswers set Enabled = 1
where QuestionID in (1212,1778) and AwardYearID in(9,10)
答案 1 :(得分:2)
在QuestionID
和AwardYearID
CREATE INDEX index_for_QuestionID ON ApplicationAnswers(QuestionId);
CREATE INDEX index_for_AwardYearID ON ApplicationAnswers(AwardYearID);
另外,将Hitham中的两个更新组合在一起建议:
UPDATE schemaName.dbo.ApplicationAnswers SET Enabled = 1
WHERE QuestionID IN (1212,1778) AND AwardYearID in(9,10)