[英]Performance tuning in Oracle - update same column
我在Oracle中編寫查詢以基於同一列更新該列
UPDATE TABLE SET A = 'CG-'||A
我有喜歡的數據
COLUMN A
121
234
333
我需要像數據一樣
COLUMN A
CG-121
CG-234
CG-333
基本上,我這樣做是為了獲得3000萬條記錄,並且要花很多時間。 有什么方法可以優化此查詢? 如果我在A列上創建索引,是否可以改善性能?
您有正確的查詢:
UPDATE TABLE
SET A = 'CG-' || A;
這是不同的選擇。
首先,您可以批量執行此操作,例如一次執行100,000行。 這限制了日志的大小。
其次,您可以執行“替換”而不是更新:
create table tempt as
select * from table;
truncate table "table";
insert into table ( . . . )
select 'CG-' || A, . . .
from tempt;
第三,您可以使用生成的列並免除更新(但僅在Oracle的最新版本中)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.