delete大量数据时正确姿势(待测试)
2017-11-16 20:55
453 查看
参考:https://www.cnblogs.com/jyzhao/p/3879590.html
直接删除大量数据的影响:
1)可以由于undo表空间不足从而导致最终删除失败;
2)可以导致undo表空间过度使用,影响到其他用户正常操作;
改进方案:每删除1k行就提交一次。
declare
cursor [del_cursor] is select a.*, a.rowid row_id from [table_name] a order by a.rowid;
begin
for v_cusor in [del_cursor] loop
if v_cusor.[time_stamp] < to_date('2014-01-01','yyyy-mm-dd') then
delete from [table_name] where rowid = v_cusor.row_id;
end if;
if mod([del_cursor]%rowcount,1000)=0 then
commit;
end if;
end loop;
commit;
end;
[del_cursor] 游标名
[table_name] 删除数据的表名
[time_stamp] 用作过滤条件的时间字段名称
PS:
是否能够关闭表的log功能
alter table table_name nologging;
alter table table_name logging;
直接删除大量数据的影响:
1)可以由于undo表空间不足从而导致最终删除失败;
2)可以导致undo表空间过度使用,影响到其他用户正常操作;
改进方案:每删除1k行就提交一次。
declare
cursor [del_cursor] is select a.*, a.rowid row_id from [table_name] a order by a.rowid;
begin
for v_cusor in [del_cursor] loop
if v_cusor.[time_stamp] < to_date('2014-01-01','yyyy-mm-dd') then
delete from [table_name] where rowid = v_cusor.row_id;
end if;
if mod([del_cursor]%rowcount,1000)=0 then
commit;
end if;
end loop;
commit;
end;
[del_cursor] 游标名
[table_name] 删除数据的表名
[time_stamp] 用作过滤条件的时间字段名称
PS:
是否能够关闭表的log功能
alter table table_name nologging;
alter table table_name logging;
相关文章推荐
- 大数据职业规划的N种正确姿势
- 一条SQL快速生成大量的测试数据
- 使用 SQL 生成大量测试数据
- 循环窗体选择 测试数据库数据是否正确
- 【Mysql之自我练习<一>】利用存储过程,造大量测试数据(注:私用的,为了不遗失)
- 疲劳强度测试与大量数据测试
- 大数据职业规划的N种正确姿势
- Oracle 不同用户之间 大量数据转移的方法测试
- 学习软件测试最正确的姿势,你Get到了吗?
- 数据结构与算法学习笔记之写链表代码的正确姿势(下)
- 大数据职业规划的N种正确姿势
- Oracle 不同用户之间 大量数据转移的方法测试
- 使用JDBC插入大量数据的性能测试
- 3分钟学会用导入表格数据到云端的正确姿势~
- 数据库 误操作(更新数据(Update),删除数据(delete),当然也包括增加大量数据(insert))之后,给出的解决方案
- 大数据职业规划的N种正确姿势
- Oracle 不同用户之间 大量数据转移的方法测试
- 在大量数据中进行查询,有无索引查询的速度效果测试
- 生成大量的测试数据的三种方法,1写sql,2工具plsql,3LoadRunner
- angular4.0中form表单双向数据绑定正确姿势