請問如何加快update的速度? |
答題得分者是:Mickey
|
pprayer
高階會員 發表:35 回覆:185 積分:174 註冊:2002-03-13 發送簡訊給我 |
|
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
|
kadee
高階會員 發表:11 回覆:141 積分:165 註冊:2002-03-20 發送簡訊給我 |
|
pprayer
高階會員 發表:35 回覆:185 積分:174 註冊:2002-03-13 發送簡訊給我 |
|
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
你究竟想在 Delphi 讀出 2個 table 的資料然後對比更新還是要找用tableB 來更新 tablea 的語法丫? 前者的話,剛才己提出了 tableA 的語法。 後者的話,你可試試 update tableA, tableB
set tableA.Field1 = tableB.Field1, tableA.Field2 = tableB.Field2,...
where tableA.Key1 = tableB.Key1 and tableB.Key2 = tableB.Key2... 這應可直接將 TableB 的資料更新更 TableA 我不知道這是不是標準 ANSI-92 SQL,但在 MySQL 是可行的,你可試試。
|
Mickey
版主 發表:77 回覆:1882 積分:1390 註冊:2002-12-11 發送簡訊給我 |
|
pprayer
高階會員 發表:35 回覆:185 積分:174 註冊:2002-03-13 發送簡訊給我 |
我用的是SQL Server 。 目前使用的SQL如各位說的一樣, UPDATE TableA
SET fielda = TableB.fielda
FROM TableA,TableB
WHERE TableA.fieldb = TableB.fieldb
AND TableA.fieldc = TableB.fieldc
AND TableA.fieldd = TableB.fieldd
AND TableA.fielde = TableB.fielde fieldb~fielde 目前沒有建index。 因為速度蠻慢的(大概10-13秒),所以想知道大概怎樣做可以增加效率
|
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
|
Mickey
版主 發表:77 回覆:1882 積分:1390 註冊:2002-12-11 發送簡訊給我 |
引言: 我用的是SQL Server 。 目前使用的SQL如各位說的一樣, UPDATE TableA SET fielda = TableB.fielda FROM TableA,TableB WHERE TableA.fieldb = TableB.fieldb AND TableA.fieldc = TableB.fieldc AND TableA.fieldd = TableB.fieldd AND TableA.fielde = TableB.fielde fieldb~fielde 目前沒有建index。 因為速度蠻慢的(大概10-13秒),所以想知道大概怎樣做可以增加效率一次 update 30000 筆 , 10-13秒 不錯了. 如果有必要 where condition 加 TableA.fielda != TableB.fielda /* Free 和 Create 一樣重要 */ |
pprayer
高階會員 發表:35 回覆:185 積分:174 註冊:2002-03-13 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |