我把oracle的表名为:ABC_LOG_SEND 的数据备份了出来,
备份的文件竟有15.2G
现在我想把表中2007年的数据按月份删除,从早上到现在第一个月的数据还没有删除完呢。
我的语句是:
delete from abc_log_send s
where s.create_time >= to_date(20070101,'yyyymmdd')
and s.create_time < to_date(20070201,'yyyymmdd')
请教各位有没有快速删除的语句呀。。
我google了,也没有找到答案。。
在线急等
备份的文件竟有15.2G
现在我想把表中2007年的数据按月份删除,从早上到现在第一个月的数据还没有删除完呢。
我的语句是:
delete from abc_log_send s
where s.create_time >= to_date(20070101,'yyyymmdd')
and s.create_time < to_date(20070201,'yyyymmdd')
请教各位有没有快速删除的语句呀。。
我google了,也没有找到答案。。
在线急等
解决方案 »
- orcale表分区自动创建问题
- 请教在ORACLE中多个JOB同时执行的效率和对数据库影响问题
- oracle 能查sql server中的nchar类型的字段吗?ora-28500
- 帮忙看下这段SQL语句
- 问高手一个简单问题,procedure或者FUNCTION能返回一个记录集吗?
- 哪里有develope2000?
- 请教:如何设定权限以获得oracle最大的安全性
- 在NT4.0和WIN2000中安装oracle8有什么区别
- ORACLE有没有根本解决高水位的方法
- 求好心人借个Oracle support identifier账号,下载补丁
- 求一个SQL语言
- 诚聘 ORACLE EBS 11i 客户化开发人员
我觉的还是做一个job,让机器自己去处理吧。
where s.create_time > = to_date(20070101,'yyyymmdd')
and s.create_time < to_date(20070201,'yyyymmdd') --------------->>>>>>>>>>>
where里日期的比对好像to_char比to_date快,
试下下面的:
delete from abc_log_send s
where to_char(s.create_time,'mm') ='01' --删除1月份的资料
那我备份出来的文件是 *.dmp 请问如何刻盘呀?
现在讨论继续。。呵呵
直接建个索引,然后 s.create_time > = '20070101'
and s.create_time < '20070201'
就好了
这么大的数据可以考虑先通过建立新的表的方式,直接把有用的数据导入到新表中,
把老的表drop掉就行了。