我们在做开发时,常用到Oracle数据库来开发一些大型项目,如何优化Oracle来提高效率这是开发者都曾遇到或者将会遇到的问题。
现在我们就来一起研究研究Oracle调优的一些基本方法。
方法一:硬件调优。
硬件的更新和升级是Oracle调优最直接的方法:主要包括内存、cpu和磁盘这三个硬件升级。
但是这种方法带来的是成本的增高,公司不到万不得已也不会批准用这种,从市场的角度和技术的角度我们都不提倡先用这种方法。
方法二:平衡、合理地限制资源的使用。
根据业务需求的特性来充分利用这是很聪明的办法,前提是在前期应该做一个近乎完美的需求和设计,要提前想到可能面临的问题。
我们主要根据两个特性来判断:
1.一次或多次对Oracle有大数据量的读取或写入。
如一些统计部门就需要对上千万甚至上亿的数据做处理,对数据库就会有大量的读取,这直接影响了数据库的效率。
2.对数据库频繁的访问。
一些在线系统,当有大量人员登录或登出时,这个数据库和服务器都造成了极大的压力,甚至可能造成服务器直接“当掉”。
以上两种情况就需要开发这充分的考虑并作出正确的设计,对Oracle的SGA,共享池、数据缓冲区、日志缓冲区做出合适的调整,
来迎接这些极端“气候”。
方法三:SQL调优。
SQL语句的优化往往会有意想不到的效率提高,尤其是在数据量极大的情况下。
SQL调优有以下规则:
1.From最右边的表为基础表,数据库会先解析,所以把数据量最小的表作为基础表。
2.查询条件从where最远端开始解析,所以最后的where条件限制量最大。
3.用truncate代替delete,不会产生回滚段,减少写日志的过程,提高效率。
4.使用ROWID,访问索引提升性能。
5.避免改变索引列类型,避免使用IS NULL 和 IS NOT NUL。L
6.union all 比union 效率更高,因为union有distinct去重。
7.用IN替换OR。
以上并不是提升Oracle性能的全部方法,还有很多待我们继续深入研究。
欢迎大家提出更多的宝贵意见,如转载请注明出处。