表table a,有一列为ID,ID的值为1,2,3,4,5,6,7。在表a中,每个ID对应的记录有30000条
执行下面的操作
delete from table a
where ID=1
执行时间月为1分钟
如果执行
delete from table a
执行时间为1小时,为什么差距这么大?
执行下面的操作
delete from table a
where ID=1
执行时间月为1分钟
如果执行
delete from table a
执行时间为1小时,为什么差距这么大?
解决方案 »
- 这样的一个SQL需求你们遇到过吗?
- 使用scott账户以DBA身份登陆企业管理器不能把emp表的select权限授予其它用户???????????????
- oracle数据库添加日志组问题。
- 如何Oracle 中取得 view、Materialized View、synonyms的相关信息
- Oracle数据库周期性地报一个奇怪的异常
- 请问高手 错误吗 ora-06512 是什么意义?
- 一个简单的sql语句
- 出现错误:Ora:01041内部错误,HostDef扩展名不存在!什么原因,如何解决??
- 菜鸟问题
- 请教一下,linux下oracle怎样定时导出一个表
- ORA-01861: literal does not match format string
- oracle调用utl_http url中的中文是乱码?那位大侠帮忙看看啊
2、日志记录两方面原因的,不是说你一个id删除1分钟,7个id删除就一定是7分钟的。打比方说,你只有一个垃圾桶(容量2L),你要删除7L的物品,1L一升的删除很快,但是7L一起删除你就需要及时清空垃圾桶,同时做好,恢复(rollback)的控制,速度自然就会慢些。
where ID=1
执行时间月为1分钟
如果执行
delete from table a
执行时间为1小时,
删除表中一条记录和删除整个表,如果记录相当的多的话,明显就能看出加入条件where id=1快的不只是一点点了,具体可以看一下执行的计划。
你可以控制,比如每删除10000条记录后commit
这时的开销主要是回滚段和日志信息的保存。