从大型 table oracle 中删除大量数据
delete large data from a large table oracle
我有一个 table 有 4 亿条记录,只有一个 clob 列。 table 的大小约为 30 GB。
我想从中删除 2.5 亿条记录。
我试过了
- 传统的小块删除。
- 创建 table 作为 select ...
- 插入 select...
所有的努力都失败了,因为重做日志被填满,或者发生了什么事情,会话卡住了一个多小时,所以
我杀了会话。
删除如此庞大的数据有什么建议或方法吗?
我会做以下事情:
- CREATED TABLE new_table as select * 来自 old_table where condition
- 在 new_table
上添加索引
- 在 new_table
上添加赠款
- 在 new_table
上添加约束
- 其余
- 丢弃 TABLE old_table
- 将 new_table 重命名为 old_table
我有一个 table 有 4 亿条记录,只有一个 clob 列。 table 的大小约为 30 GB。
我想从中删除 2.5 亿条记录。
我试过了
- 传统的小块删除。
- 创建 table 作为 select ...
- 插入 select...
所有的努力都失败了,因为重做日志被填满,或者发生了什么事情,会话卡住了一个多小时,所以 我杀了会话。
删除如此庞大的数据有什么建议或方法吗?
我会做以下事情:
- CREATED TABLE new_table as select * 来自 old_table where condition
- 在 new_table 上添加索引
- 在 new_table 上添加赠款
- 在 new_table 上添加约束
- 其余
- 丢弃 TABLE old_table
- 将 new_table 重命名为 old_table