正文
oracle删除数据慢,oracle删除大量数据哪种方法效率最高
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
oracle删除上万条数据要多长时间
1、普通pc估计得1个小时以上,具体时间没测过,一般都用计划任务低访问时进行。
2、这个要看数据表的数据存储量及计算机的性能。
3、小时。插入10万数据要42秒 插入1千万,岂不是要42000000秒,共11700小时。如果是很简单的表,现在流行的通用级别的服务是很快的,是可以在分钟级别完成的。
4、这个和oracle数据库的性能有关系,而且drop表速度会慢,使用truncate table估计不需要多少时间,另外可以放在oracle所在服务器上,sqlplus连接上去执行命令,效率会高一点。
5、oracle数据库导出40万条数据csv大概最多需要半个小时左右。ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。
6、你好:这个不太好说,影响的因素有很多。这个得看你电脑的性能,除此之外,你表结构的复杂度、更新的复杂度,外键、主键等都会影响到正常的记录更新。
oracle数据库删除记录就卡死是怎么回事?
是不是数据量过大,导致delete速度慢。
DELETE删除时,需要获得表的某种锁,而这种锁正在被其他占用,例如有其他进程在向表插入、更改数据。因此DELETE时,就要去等待其他进程释放这个锁,然后得到这个锁。
因为oracle不是自动commit;所以你在做锁表的操作时一定要记得手动提交,可以通过PL/SQL中的Tool--session查看是否有锁表的情况,如果有将这个session kill掉就可以解锁了。
首先先查询锁定记录。其次然后删除锁定记录。如果用的是终端窗口,还可以关闭窗口重新连接,建立新的sqlsession,再次执行sql语句即可。
按你的描述,应该就是锁表了,并不是卡死。检查是否for update 的操作。我不知道你是什么检查锁表的,检查锁表时是否有用户名作为条件了?不加条件试试。
oracle删除上千万条数据的快速删除方法怎么写
你可以用CTS啊,例如:create table aa_new as select * from a_old,建新表的时候,可以把那个字段去掉吗。如果不是很重要的表,可以用nologging和并行。
可以写个存储过程循环删除,把你的删除条件分成若干份,每次删除1份的数据(比如条件是1个月的时间范围,可以分成30份,每次删除其中1天的)。因为不知道你的具体表分区情况和删除条件情况,所以没办法进一步提供更好的方法。
数据量较大没有快速的方法,除非是清空表,可用truncate的方式来删除。
(2)上亿的数据,应该有分区吧,如果可能的话,按照分区truncate,这样也可以。
如果是整表删除且不考虑恢复,直接用truncate table 表名,如果是删除大部分数据,那么新建一个相同结构的表,插入保留的数据,将新表与原表互换表名即可。
建议从表的设计上来解决,比如建立按日的分区表,删除数据时,可以选择delete、truncate方式。如果表中的数据非常多,delete时where子句的条件也不是索引,也没有什么太好的办法。
oracle删除数据慢的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于oracle删除大量数据哪种方法效率最高、oracle删除数据慢的信息别忘了在本站进行查找喔。