我做了一個SQL查詢來更新表中的寄存器。該表擁有約1500萬個寄存器。更新語句是這樣的:SQL更新查詢未完成
UPDATE temp_conafe
set apoyo = trim(apoyo)
where cve_status like '%APOYO%';
我一直在檢查現場V $ transaction.used_ured,看看如果查詢是滾滾向前或向後但是當記錄數達到超過1500萬的查詢開始向後滾動。
- 如何成功完成更新?
我不是DBA,只是程序員,但我不能繼續發展,直到那東西更新我的寄存器。
什麼問題? – JNK 2012-01-03 20:16:49
這聽起來像您可能會用完日誌空間來執行更改。考慮分塊更新,以便使用除cve_status之外的其他字段運行10個更小的更新。還要考慮你是否真的需要修剪數據;你能否安排去掉客戶端代碼中的尾隨空白?如果數據類型是CHAR(而不是VARCHAR2),那麼TRIM是毫無意義的;無論如何,這些數據都將以尾隨空格存儲。 – 2012-01-03 20:19:58
@JonathanLeffler謝謝你的建議,我會檢查所有。我也在想空間,但想確定一下。 – BRabbit27 2012-01-03 20:57:22