ORACLE数据库中大数据量操作那种更好 老师问的问题!现在有一张表2亿条纪录,要做删除操作,删除1-4月份的纪录,只保留5月份的纪录要求是:不检索这2亿数据的情况下删除1~4月份的纪录! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 除了where+条件,想不出好的办法,也许你的老师有好办法. 用临时表试试先把5月份的放到临时表,然后truncate原表再将临时表记录插入原表删除临时表.... 不加where貌似不太可能完成的任务。 有一种方式可以理解:楼主老师的文凭是买的,汉语表达能力有问题;也许他只是想表述这样的意思:如何在不进行全表扫描的前提下删除2亿条数据的大表的中的1~4月份记录而保留5月份记录如果这样,答案有如下几种:1、表中没有1~4月份数据,只有5月份的,所以什么不做就完成了2、表中无5月份数据,只要先trancate掉table,然后随便插入一条5月份的就ok了3、在日期字段创建索引,然后用where 日期 >= 5月1日做条件删除,这样虽然也检索了表中数据,但是因为应用了索引,不会全表2亿条数据都扫描4、按照月份建立分区表,直接把分区在1-4月的数据删除,这样虽然也要用where条件,但也不是全表扫描了5、最笨也最无聊的法子,直接trancate掉table,然后找出原始单据花个把月把5月份的都录进去,这也是唯一完全满足“不检索这2亿数据的情况下删除1~4月份的纪录!”要求的办法注意:第5种答案虽然最符合题目要求,但是为了防止别人追着砍,建议同学还是不要拿给老师或客户看 SORRY!好久没上来了,老师的答案是作表分区。 怎样查看数据库中某一个具体的表空间信息 oracle多个相同结构表查询一个结果集 oracle如何重命名序列名称 求sql语句 如何判断某个表中是否存在某个字段? 求助:为什么我的这个触发器中的:old,:new不起作用? 可以导表到另外的电脑上吗? 如何更改创建数据文件的默认路径。 请问oracle有没有类似charindex的函数,获取某个子串在一个字符串里的位置? 哪有Oracale9i下载!!! PHP 连Oracle的绑定问题 怎么随机去一个月中的某个时段?
先把5月份的放到临时表,然后truncate原表
再将临时表记录插入原表
删除临时表
....
楼主老师的文凭是买的,汉语表达能力有问题;也许他只是想表述这样的意思:如何在不进行全表扫描的前提下删除2亿条数据的大表的中的1~4月份记录而保留5月份记录
如果这样,答案有如下几种:
1、表中没有1~4月份数据,只有5月份的,所以什么不做就完成了
2、表中无5月份数据,只要先trancate掉table,然后随便插入一条5月份的就ok了
3、在日期字段创建索引,然后用where 日期 >= 5月1日做条件删除,这样虽然也检索了表中数据,但是因为应用了索引,不会全表2亿条数据都扫描
4、按照月份建立分区表,直接把分区在1-4月的数据删除,这样虽然也要用where条件,但也不是全表扫描了
5、最笨也最无聊的法子,直接trancate掉table,然后找出原始单据花个把月把5月份的都录进去,这也是唯一完全满足“不检索这2亿数据的情况下删除1~4月份的纪录!”要求的办法
注意:第5种答案虽然最符合题目要求,但是为了防止别人追着砍,建议同学还是不要拿给老师或客户看
好久没上来了,老师的答案是作表分区。