Oracle SQL执行缓慢的原因以及解决方案
2012-10-09 10:34
309 查看
以下的文章抓哟是对Oracle SQL执行缓慢的原因的分析,如果Oracle数据库中的某张表的相关数据已是2亿多时,同时此表也创建了相关的4个独立的相关索引。由于业务方面的需要,每天需分两次向此表中插入300万条记录。由于数据量大,每次插入耗时3个小时以上,严重影响效率。因此,修改了系统的算法,将此表中只存储当天新增记录。将此表truncate后,第二天执行对此表的update操作时,非常耗时。表中有2亿多条数据的时候,此Oracle sql语句耗时59秒;表中有300万条数据的时候,此Oracle sql语句耗时几个小时。咨询DBA后,得出结论,需重建索引。重建后,6秒完成此操作。但第三天问题依然出现。DBA正在查找原因。难道每次truncate表,都需要重建索引?对于这个问题,DBA也没有给出合理的解释,推测主要原因是Oracle复杂的查询优化算法。最终,DBA给出的解决方案:truncate table ....
drop index.....
insert data .....
create index ...
analyze table table_name compute statistics;
重新生成统计数据调整后,整个操作耗时非常少。以上的相关内容就是对Oracle SQL执行缓慢的分析的介绍,望你能有所收获。
drop index.....
insert data .....
create index ...
analyze table table_name compute statistics;
重新生成统计数据调整后,整个操作耗时非常少。以上的相关内容就是对Oracle SQL执行缓慢的分析的介绍,望你能有所收获。
相关文章推荐
- Oracle SQL执行缓慢的原因以及解决方案
- 查询oracle正在执行的sql以及session
- Oracle SQL 的硬解析和软解析 以及 SQL的整个在Oracle中的执行过程。
- oracle锁与死锁概念,阻塞产生的原因以及解决方案
- Mysql only_full_group_by以及其他关于sql_mode原因报错详细解决方案
- Oracle的SQL中出现未明确的列以及执行事务出错
- Mac本下Oracle InstantClient的安装(sqlplus命令不能执行的解决方案)
- Oracle的HINT可以强制指定SQL的执行计划,比如选择索引、表的连接顺序以及表的连接方式等等。(转)
- Mysql5.7 only_full_group_by以及其他关于sql_mode原因报错详细解决方案
- 【转载】Oracle死锁概念,阻塞产生的原因以及解决方案
- 使用hint优化Oracle的执行计划 以及 SQL Tune Advisor的使用
- SQL语句执行顺序以及oracle基本查询优化
- 循环执行sql语句时报 ORA-01000 maximum open cursors exceeded 超出打开游标的最大数的原因和解决方案
- 查看前五个最占用CPU的Oracle会话进程.以及他们正在执行的sql语句
- SQL Server SQL性能优化之--通过拆分SQL提高执行效率,以及性能高低背后的原因
- Mysql only_full_group_by以及其他关于sql_mode原因报错详细解决方案
- oracle识别低效执行的SQL语句
- lazarus连接oracle执行sql出错: illegal variable name/number
- hibernate无法自动建表的原因以及.sql文件无法运行的原因
- Oracle 锁表的原因,及解决方案