簡體   English   中英

Oracle中的性能調優-更新同一列

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM