免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: sfpeng
打印 上一主题 下一主题

删除表中大量数据的问题 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2004-02-06 07:50 |只看该作者

删除表中大量数据的问题

[quote]原帖由 "mymm"]alter table X active not logged initially with empty table[/quote 发表:

这个办法还得删除现有表,再重新建表吗?

论坛徽章:
0
12 [报告]
发表于 2004-02-06 08:29 |只看该作者

删除表中大量数据的问题

不用重建~~你大概每次要删除多少记录?

论坛徽章:
0
13 [报告]
发表于 2004-02-06 10:55 |只看该作者

删除表中大量数据的问题

几百万吧

论坛徽章:
0
14 [报告]
发表于 2004-02-09 10:03 |只看该作者

删除表中大量数据的问题

export出来有用的数据,用load的replace方式重新导入数据;
load语句中有个NONRECOVERABLE;可以省略load后需要备份数据库的麻烦,不过建议还是备份一下哈

论坛徽章:
0
15 [报告]
发表于 2004-02-12 20:10 |只看该作者

删除表中大量数据的问题

用游标,每删除1000条提交一次

论坛徽章:
0
16 [报告]
发表于 2004-02-14 10:40 |只看该作者

删除表中大量数据的问题

用not logged initally这个参数是可以的,没有影响,如果保险期间对该数据库或者表空间先做一次备份,万无一失了。

论坛徽章:
0
17 [报告]
发表于 2004-02-17 11:01 |只看该作者

删除表中大量数据的问题

不用的,没有问题的。只要你在最初创建表的时候,有not logged initially属性.当使用一条sql:alter table xxx activate not logged initially not logged initially.
就可以激活not logged initially属性。那样接下来的工作单元里面的表的所有操作都不会记录在日志里面。
另外,上面有人在alter table后面加上了with empty talbe,这个只是指定要移动表的所有数据,实质上可以起到清空表的作用。
如果,我说的不对,请高手指出。上面这些也是我查了很久,也尝试了很多次试出来的。

论坛徽章:
0
18 [报告]
发表于 2004-04-24 15:51 |只看该作者

删除表中大量数据的问题

对于大数据量的删除或插入,activate not logged initially 几乎无效(应该是确实无效,多次实验中得出)而且容易损坏数据。如果数据仅仅是几百万,有索引的话,加大日志文件,直接删除即可。
1)如果数据库服务器较好如P690 等,删除几百万在谈笑之间即可完成。
2)创建临时表,将有用的数据插入临时表(需要锁住该表),然后用with empty talbe清空间,再将临时表中数据插回。

论坛徽章:
0
19 [报告]
发表于 2004-04-25 13:35 |只看该作者

删除表中大量数据的问题

up

论坛徽章:
0
20 [报告]
发表于 2004-04-27 09:57 |只看该作者

删除表中大量数据的问题

原帖由 "netxay" 发表:
对于大数据量的删除或插入,activate not logged initially 几乎无效(应该是确实无效,多次实验中得出)而且容易损坏数据。如果数据仅仅是几百万,有索引的话,加大日志文件,直接删除即可。
1)如果数据库服务器较..........

是个不错的方法。
另:为什么要锁临时表呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP