[SQL ] 取代語法導致系統空間不夠

看板Database作者 (πBear)時間12年前 (2013/06/04 15:58), 編輯推噓0(007)
留言7則, 2人參與, 最新討論串1/1
各位前輩好,實在是求救無門 想再來這邊請教 因為我資料有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

06/04 22:50, , 1F
undo(? 空間不夠。如果一次改很大一片的話 分小塊改看看
06/04 22:50, 1F

06/04 22:50, , 2F
然後改完要COMMIT
06/04 22:50, 2F

06/04 23:14, , 3F
一次要它全跑780萬筆..但是我不太懂樓上所說的東西
06/04 23:14, 3F

06/04 23:47, , 4F
如果你有開TRANSACTION 在COMMIT之前都有可能ROLLBACK
06/04 23:47, 4F

06/04 23:47, , 5F
所以DBMS會保留你COMMIT前所有的變更記錄準備倒回用
06/04 23:47, 5F

06/04 23:48, , 6F
也就是說你改的範圍越大 這預備倒回的保留區就越大
06/04 23:48, 6F

06/04 23:51, , 7F
保留區空間不足=DBMS無法確保資料一致性=交易失敗
06/04 23:51, 7F
文章代碼(AID): #1HhPuqt7 (Database)