看板 Database 關於我們 聯絡資訊
各位前輩好,實在是求救無門 想再來這邊請教 因為我資料有780萬筆,我的語法取代跑一下就跟我說空間不足, 我空間預留有40GB還是不夠 這樣我應該怎麼改寫語法? 才可以有效的處理 TEST10M為表A ODLINE為表B 要更新表A的欄位,從表B抓取資料, (當表A的上分區、下車分區=表B的上下車分區名稱時,讓表A的linewkt欄位=表B的線座標) 我的取代語法如下 UPDATE[BUS10_new].[dbo].[test10M] SET [BUS10_new].[dbo].[test10M].[linewkt] = [BUS10_new].[dbo].[ODLINE].[ 線座標] FROM [BUS10_new].[dbo].[ODLINE] WHERE ([BUS10_new].[dbo].[ODLINE].[上車 分區] = [BUS10_new].[dbo].[test10M].[上車交通分區名稱]) and([BUS10_new].[dbo].[ODLINE].[下車分區] = [BUS10_new].[dbo].[test10M].[下車 交通分區名稱]) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.134.128.187
iFEELing:undo(? 空間不夠。如果一次改很大一片的話 分小塊改看看 06/04 22:50
iFEELing:然後改完要COMMIT 06/04 22:50
bear1005:一次要它全跑780萬筆..但是我不太懂樓上所說的東西 06/04 23:14
iFEELing:如果你有開TRANSACTION 在COMMIT之前都有可能ROLLBACK 06/04 23:47
iFEELing:所以DBMS會保留你COMMIT前所有的變更記錄準備倒回用 06/04 23:47
iFEELing:也就是說你改的範圍越大 這預備倒回的保留區就越大 06/04 23:48
iFEELing:保留區空間不足=DBMS無法確保資料一致性=交易失敗 06/04 23:51