关于delete操作优化的问题?

如无法使用分区表及视图的情况,如何优化delete的数据清理方式?如何控制delete操作有可能产生的大事务?

参与11

2同行回答

topzgmtopzgm课题专家组软件架构设计师People's Bank of China
Delete优化可以从以下两个方面考虑:1)如果是整个表清理,可以考虑适用truncate table x1 ... 或者 import from /dev/null of del repace into x1...,这些都不会在数据库中产生delete日志,而是直接在物理页面级进行清理,效率较高。2)如果是表中部分记录清理,需要使用delete脚本,d...显示全部

Delete优化可以从以下两个方面考虑:
1)如果是整个表清理,可以考虑适用truncate table x1 ... 或者 import from /dev/null of del repace into x1...,这些都不会在数据库中产生delete日志,而是直接在物理页面级进行清理,效率较高。
2)如果是表中部分记录清理,需要使用delete脚本,delete脚本会在数据库中产生日志,记录越多则日志越大。可以考虑分而治之的策略,分多次进行清理,每次清理加上过滤条件,及时commit事务。

收起
银行 · 2017-08-18
浏览1716
y18511664518y18511664518技术总监长城超云
分批delete,如果允许,可以关闭表的nologging,尽量避免在业务高峰期。显示全部

分批delete,如果允许,可以关闭表的nologging,尽量避免在业务高峰期。

收起
金融其它 · 2017-08-15
浏览1663

提问者

iSamdx
数据库管理员银行
擅长领域: 灾备数据库双活

问题来自

问题状态

  • 发布时间:2017-08-14
  • 关注会员:3 人
  • 问题浏览:4241
  • 最近回答:2017-08-18
  • X社区推广