oracle数据库插入的速度快还是更新的速度快啊

我想可不可以在更新时使用delete(int id)先删除然后在插入insert(been b),相比较直接update哪个快啊,?
有DBA吗?求真解

个人看法是update快啊。oracle先删后插入,隐含的rowid什么的都变化了,而且还要重新分配空间什么的,事务数量也多了,
总之和update的效果不一样,虽然你之后进行select的返回值一样。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-12-30
在大型数据库操作最忌就是删除之后再插入,没有这种搞法。
直接按关键字更新,必须是关键字或完整索引。

所有操作都按照关键字或完整索引处理,速度是比较快的。如果偏离这个方向,那就谈不上速度问题了。本回答被提问者采纳
第2个回答  2015-07-03
相同数量级的话,更新可能会比插入快一些。因为更新不需要在DB里重新分配空间,而插入需要在DB里重新分配空间。
但是,如果数量级不同的话,就不好说了。因为还涉及性能的问题。
第3个回答  2012-01-01
你可以这样去测试
同样一个实例中 一个表 内存清空, delete一条 再 insert一条 循环十万次 看看时间
再情况内存 ,直接跟新十万条, 你会发现这个时间相差很大的 如果这个表索引较多 时间会相差更大
第4个回答  2020-07-13
更新一条数据的同时会往重做日志中写记录,以便在更新失败的时候利用重做日志来恢复数据,所以一般情况下更新比插入速度更慢,因为它执行了两次操作,时间要比直接插入长一倍左右。
但是不能用先删后插这种操作,因为删除并不能释放表空间,如果数据量很大的情况下,会浪费很多资源。
可以考虑用 update /*+nologging*/ tab set a=1,不记录重做日志(需谨慎),因为更新失败不能恢复,最好做好备份
相似回答