大表更新方法--使用rowid
来源:互联网 发布:刀路模拟软件 编辑:程序博客网 时间:2024/05/18 02:59
创建测试表
Create table test_gel (id number,name varchar(10),JGSJ date);
插入测试数据,数据量越大,越能体现现象,
Begin
For i in 1..1000000 loop
Insert into test_gel values(i,’A123456’,sysdate);
End loop;
End;
方法1、使用正常update语句更新:
Update test_gel SET name = '京A88888'
漫长等待:
方法2、使用rowid更新
DECLARE
CURSOR cur IS
SELECT
id,name ,ROWID ROW_ID
FROM test_gel
ORDER BY ROWID; ---如果表的数据量不是很大,可以不用 order by rowid
V_COUNTER NUMBER;
BEGIN
V_COUNTER := 0;
FOR row IN cur LOOP
UPDATE test_gel
SET name = '京A88888'
WHERE ROWID = row.ROW_ID;
V_COUNTER := V_COUNTER + 1;
IF (V_COUNTER >= 1000) THEN
COMMIT;
V_COUNTER := 0;
END IF;
END LOOP;
COMMIT;
END;
还没反应过来就搞定了,呵呵
0 0
- 大表更新方法--使用rowid
- 利用rowid更新单表
- 利用ROWID更新表的实验
- 使用 DBMS_PARALLEL_EXECUTE 更新大表
- 使用rowid查找表中唯一记录
- oracle对于大表利用rowid提升update性能
- 【Oracle批量更新】根据一个大表批量更新另一大表的方法比较
- 【Oracle批量更新】根据一个大表批量更新另一大表的方法比较
- 【Oracle批量更新】根据一个大表批量更新另一大表的方法比较
- rowid的使用
- SAP HANA 使用rowid
- oracle rowid 使用注意事项
- Oracle大数据量更新方法
- 这些查询结果不可更新,请包括ROWID或使用SELECT ...FOR UPDATE 获得可更新结果!
- 使用ROWID方式进行表的在线重定义
- 使用rowid去除oracle表中的重复项
- 用rowid 删除的方法
- oracle分页优化 ---- rowid方法
- python无法输入中文注释的解决办法
- 谈谈MySQL乱码和set names
- 堆排序
- SQLite数据库报-1错误
- #define GPBCON (*(volatile unsigned *)0x56000010) 的理解
- 大表更新方法--使用rowid
- poj2769之寻找最小完全剩余系
- c# excel 新建工作薄
- java中的synchronized理解
- jsp实现验证码实例
- MySQL学习笔记(一)
- “JAX-WS版本不一致导致Webservice异常”与《共享达成共赢》
- 【WPF】使用PSD模板制作巨漂亮的ToggleButton --- 上篇
- Hibernate复合主键