sql - 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 是表的主键。
请帮助微调查询以减少执行时间。
解决方案
你可以在没有子查询的情况下做到这一点:
UPDATE TABLE_NAME
SET NCLOB_COLUMN=CLOB_COLUMN
WHERE NCLOB_COLUMN IS NULL and rownum<=5000;
推荐阅读
- objective-c - SwiftUI 的 Canvas 不会出现在 Objective-C 项目中
- docker - Docker(节点:8.15-alpine)+ Chromium + Karma 单元测试不起作用
- python - Dronekit 上传到 Pixhawk 4 - 舍入问题
- ios - 如何从一个故事板导航到另一个 TabBarController?
- c# - C# 无法返回值“并非所有代码路径都返回值”错误
- vue.js - core-js 依赖项警告 [vue]
- java - 日期转换在转换为时间戳时返回错误的日期
- python - 关联 .csv 列数据以进行计算
- c# - 我想将 "B101" 这个 id 增加到 "B102" ,我该如何使用溢出方法来做到这一点?
- reactjs - 如何将用户输入数据从功能子组件发送到父类组件?