我有一張200.000+條記錄的Customer表,我必須循環查看條件(在特定列上)並將「IsPremiumUser」列更新爲TRUE。 什麼是最好的方式去呢?需要幫助SQL - 通過2 Lac +記錄進行解析
我看,我可以通過兩種方式
- 使用加入,並通過每個記錄更新
- 循環和更新它實現這一目標。
我正在使用SQL Server2008。
更新:我不是指使用C#或Java循環記錄,而是在SQL本身。我正在尋找減少執行時間的方法,因爲有超過200.000條記錄。它需要20分鐘使用更新+加入
更新2:這裏是查詢。
MERGE pref.personpreference AS T
USING (SELECT PR.PersonID,PR.PersonroleId from personrole PR) as S
ON (T.PersonRoleID = S.PersonRoleID)
WHEN MATCHED THEN
UPDATE SET T.SDRPERSONID = S.PersonId;
UPDATE PP
SET PP.SDRPersonID = PR.PersonID
FROM PREF.PersonPreference PP JOIN PersonRole PR
ON PP.PersonRoleID = PR.PersonRoleID
注:合併需要17分鐘並更新20分鐘才能執行。但是我看到這些陳述之間修改的記錄數相差大約1000。
你能發佈這類以20 +分鐘運行您的更新語句?
它更新了多少條記錄?剛剛發現了什麼[2Lakh] [1]是 –Update2有查詢。 – nfa379