oracle数据库突然变慢-脚突然变臭 身体变好了
发布时间:2023-02-08 22:23 浏览次数:次 作者:佚名
下面这篇文章重点分析Oracle SQL执行慢的原因。 如果Oracle数据库中某张表的相关数据超过2亿条,同时这张表还创建了4条相关的独立关联索引。 由于业务需要,每天两次需要向这张表中插入300万条记录。
由于数据量大,每次插入需要3个多小时,严重影响效率。
因此,修改了系统的算法,该表只存储当天的新记录。 truncate这张表后,第二天要对这张表进行update操作oracle数据库突然变慢,非常耗时。 当表中数据超过2亿条时oracle数据库突然变慢,这条Oracle SQL语句耗时59秒; 当表中有300万条数据时,这条Oracle SQL语句需要几个小时。
咨询过DBA后,得出的结论是需要重建索引。 重建后,6秒做这个。 但是第三天问题依旧。 DBA 正在查找原因。 每次truncate table都需要重建索引吗?
对于这个问题,DBA并没有给出合理的解释。 推测主要原因是Oracle复杂的查询优化算法。
最后,DBA给出的解决方案:
- truncate table ....
- drop index.....
- insert data .....
- create index ...
- analyze table table_name compute statistics;
重新生成统计信息
调整后,整个操作只需要很少的时间。
以上相关内容是对Oracle SQL执行慢分析的介绍,希望大家有所收获。
【编辑推荐】
Oracle数据库索引优缺点介绍 Oracle使用游标触发器实际存储过程 Oracle使用相关触发器实现自增IDOracle视图修改其最大游标数 解决Oracle删除数据后释放表空间问题