在ORCLE数据库中,一个表有两千万条数据,怎样最有效的将其删除

在ORCLE数据库中,一个表有两千万条数据,怎样最有效的将其删除,第1张

如果楼主要删除全部数据,那就用TRUNCATE

TABLE,但是这个命令只能用来删除所有数据,

用DELETE会有高水位线的问题,比如删数据之前,查询需要10秒,用DELETE

*

删除所有数据后,再查询那个空表肯定还是10秒.另外用DELETE会造成大量日志写入,效率上肯定是慢的

如果删除表,直接DROP就行..楼上那位有一点说错了,DROP

TABLE是对

数据字典

的 *** 作,只会删除表定义,不会删数据,所以速度很快,那些数据会在其所在的

数据块

被再次写入新数据的时候覆盖掉

系统内有一只游戏日志表,每日以百万条数据增长,过段时间需要按照日期清理数据。同事使用delete循环删除过一次,时间久不说,表中的数据是删除了,但是查看服务器发现,*.idb文件大小居高不下,使用optimize table 表名 , 优化表以后,内存大小恢复正常。前前后后花费将近4个小时的时间。效率比较低,偶然想起TRUNCATE TABLE,决定使用以下方案,结果10分钟内,清除3千多万条废弃数据。记录以下,已备下次使用。

按以上步骤,可以解决锁表问题。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9990924.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存