gpt4 book ai didi

sql - 如何优化在 UPDATE 中追加到 CLOB 的性能?

转载 作者:行者123 更新时间:2023-12-04 21:25:56 25 4
gpt4 key购买 nike

我有一张需要更新的表:

create table test_tab(id number, first varchar2(100), second clob);
insert into test_tab values (1, 'john', 'kowalski');
insert into test_tab values (2, 'michael', 'surname');

现在,对于我表中的每条记录,我想在 clob 字段中附加一个字符串。我可以使用通常的连接运算符:
update test_tab set second = second || 'some_string,';

这有效,但因为我的实际表就像 80k 行,更新过程持续太长时间。

我正在考虑使用 DBMS_LOB.APPEND(),但我不知道如何在 UPDATE 中使用它以及它是否有助于提高性能。

有任何想法吗?提前致谢。

最佳答案

当您需要更新表中的每条记录时,重新创建表作为选择 (CTAS) 总是更快。无论您使用哪种方法更新 LOB 列。

例子:

create table temp
as
select id, first, second||' some_string' as second
from test_tab;

rename test_tab to old_test_tab; -- you can drop it later
rename temp to test_tab;

-- then you need to move all indexes, grants and etc from old_test_tab to test_tab;

关于sql - 如何优化在 UPDATE 中追加到 CLOB 的性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40630591/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com