有网友碰到这样的问题“oracle数据库查询慢”。小编为您整理了以下解决方案,希望对您有帮助:
解决方案1:
Oracle数据库查询慢可能由多种原因导致,以下是常见原因及解决办法:
常见原因索引问题:没有索引或者没有用到索引,这是查询慢最常见的问题,属于程序设计的缺陷。I/O瓶颈:I/O吞吐量小,形成了瓶颈效应。计算列缺失:没有创建计算列导致查询不优化。内存不足:服务器内存不足影响查询性能。网络问题:网络速度慢,影响数据传输。数据量过大:查询出的数据量过大,增加了处理和传输的负担。锁问题:锁或者死锁,也是常见问题,属于程序设计缺陷。资源竞争:读写竞争资源,如sp_lock,sp_who活动的用户查看。多余行列:返回了不必要的行和列。查询语句不佳:查询语句没有优化。解决办法I/O优化:把数据、日志、索引放到不同的I/O设备上,增加读取速度;纵向、横向分割表,减少表的尺寸。硬件升级:升级硬件,如增加服务器CPU个数、扩大服务器的内存。索引优化:根据查询条件,建立索引,优化索引、优化访问方式,结果集的数据量;注意填充因子要适当,使用字节数小的列建索引。网络优化:提高网速。内存配置:扩大服务器的内存,合理配置虚拟内存。查询语句优化:在查询Select语句中用Where字句返回的行数,避免表扫描;尽可能不使用光标;用Profiler来跟踪查询,找出SQL的问题所在;注意UNion和UNion all的区别,避免不必要的DISTINCT和ORDER BY;使用显示申明指定索引等。其他优化:将需要查询的结果预先计算好放在表中;使用存储过程,减少网络开销;少用临时表,尽量用结果集和Table类型的变量代替。此外,如果是用Qt访问Oracle数据库,执行query.next函数速度慢,可调用QSqlDatabase::setConnectionOptions函数设置数据预读行数,如“OCI_ATTR_PREFETCH_ROWS=100”。
Copyright © 2019- aiwanbo.com 版权所有 赣ICP备2024042808号-3
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务