首页 > 解决方案 > Oracle NCLOB 列更新查询耗时较长

问题描述

我正在尝试将数据从 CLOB 数据类型列复制到同一表中的 NCLOB 数据类型列。该表有大约 25k 条记录。我正在尝试一次更新 5k 条记录。这是一个简单的更新查询,但 5k 记录需要 4 分钟。

UPDATE TABLE_NAME SET NCLOB_COLUMN=CLOB_COLUMN WHERE ID IN(SELECT ID FROM TABLE_NAME WHERE NCLOB_COLUMN IS NULL FETCH FIRST 5000 ROWS ONLY);

ID 是表的主键。

请帮助微调查询以减少执行时间。

标签: sqloraclesql-updatenclob

解决方案


你可以在没有子查询的情况下做到这一点:

UPDATE TABLE_NAME 
SET NCLOB_COLUMN=CLOB_COLUMN 
WHERE NCLOB_COLUMN IS NULL and rownum<=5000;

推荐阅读