Как я могу ускорить этот довольно простой запрос UPDATE? Он работает более 5 часов!Как ускорить простой запрос UPDATE с миллионами строк?
Я в основном заменяю SourceID в таблице, присоединяясь к новой таблице с старыми и новыми идентификаторами. Все эти поля - VARCHAR (72) и должны оставаться такими.
Таблица Pub_ArticleFaculty содержит 8 354 474 строки (8,3 млн.). ArticleAuthorOldNew имеет 99,326,472 строки (99,3 миллиона) и только 2 поля, которые вы видите ниже.
На всех этих полях имеются отдельные некластеризованные индексы. Есть ли лучший способ написать этот запрос, чтобы он работал быстрее?
UPDATE PF
SET PF.SourceId = AAON.NewSourceId
FROM AA..Pub_ArticleFaculty PF WITH (NOLOCK)
INNER JOIN AA2..ArticleAuthorOldNew AAON WITH (NOLOCK)
ON AAON.OldFullSourceId = PF.SourceId
После того, как он закончил, вы когда-нибудь придется сделать это снова? –
Какой режим восстановления является вашей базой данных в (ПОЛНЫЙ, ПРОСТОЙ, БОЛЬШОЙ-ЛОГИРОВАННЫЙ)? Правильно ли размер журнала транзакций? –
Эта база данных находится в режиме полного восстановления. Это нормально, чтобы вылететь на час или около того, может быть, так как он находится в тестовой среде. Мне не придется запускать это снова, и я не уверен, как определить, соответствует ли журнал надлежащим образом. Я даже не забочусь о регистрации, поскольку при необходимости у нас есть резервная копия БД. – Andy