从四千万数据删除三百万有没有什么比较快速的方法?

[复制链接]
查看11 | 回复9 | 2005-11-28 16:52:07 | 显示全部楼层 |阅读模式
从四千万数据删除三百万有没有什么比较快速的方法?
回复

使用道具 举报

千问 | 2005-11-28 16:52:07 | 显示全部楼层
分两部,首先是如何获取这三百万的ROWID,然后是删除
在删除时可以用forall的方式进行批处理,如50000或1000000一批进行提交
回复

使用道具 举报

千问 | 2005-11-28 16:52:07 | 显示全部楼层
嗯.是的.这种方法比较快的.
写过程使用forall进行批量绑定后进行删除
回复

使用道具 举报

千问 | 2005-11-28 16:52:07 | 显示全部楼层
谢谢,是快了点。还有没有其他方法
回复

使用道具 举报

千问 | 2005-11-28 16:52:07 | 显示全部楼层
forall只有一个上界和下届,如果这些rowid 不连续怎么办?
回复

使用道具 举报

千问 | 2005-11-28 16:52:07 | 显示全部楼层
为什么用forall会比直接delete快呢?
回复

使用道具 举报

千问 | 2005-11-28 16:52:07 | 显示全部楼层
写PL/SQL段,用FORALL 一段一段删
说句风凉话,早知道这样就用分区了吧,呵呵
回复

使用道具 举报

千问 | 2005-11-28 16:52:07 | 显示全部楼层
最初由 haochunpeng 发布
[B]为什么用forall会比直接delete快呢? [/B]

bulk 操作减少了PL/SQL和SQL之间的context switch的次数
回复

使用道具 举报

千问 | 2005-11-28 16:52:07 | 显示全部楼层
是不是把表上所有的约束去掉会稍微快点呢
回复

使用道具 举报

千问 | 2005-11-28 16:52:07 | 显示全部楼层
就别删了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行