OracleOracle数据库优化的经验总结

村办了解,数据库性能最重大之要素在IO,因为操作内存是高效的,但是读写磁盘是快杀缓慢的,优化数据库最要的题目在减少磁盘的IO,就单
人理解应该分为物理的跟逻辑的优化,
物理的凡乘oracle产品本身的有优化,逻辑优化是指应用程序级别的优化物理优化的片规范:  1)Oracle的周转条件(网络,硬件等) 
  2)使用相当的优化器 
  3)合理配置oracle实例参数 
  4)建立适合的目录(减少IO) 
  5)将引得数据及表数据分开在不同的表空间及(降低IO冲突) 
  6)建立表分区,将数据分别存储在不同的分区上(以空间换取时间,减少IO) 
 
 
逻辑上优化: 
  1)可以对表进行逻辑分割,如中国移动用户表,可以因手机尾数分成10单说明,这样对性会产生自然之意向 
  2)Sql语句以占位符语句,并且开发上要随确定编制sql语句(如全大写,全部大写等)oracle解析语句后会停到共享池中,
如: 
  select * from Emp where
name=?这个话只见面当同享池中起一样久,而使是字符串的话,那就是依据不同名字有不同之语句,所以占位符效率较好 
  3)数据库不仅是一个囤积数据的地方,同样是一个编程的地方,一些耗时的操作,可以通过囤过程相当以用户比少之情况下实行,从而失去系统运用的山上日,提高数据库性能 
  4)尽量不行使*号,如select * from
Emp,因为要是转化为切实的列名是若翻数据字典, 比较耗时 
  5)选择有效Oracle的表名 
  对于多表连接查询,可能oracle的优化器并无见面优化及者程度, oracle
中几近表查询是依据FROM字句从右到左的数额进行的,那么极端好下手边的表(也便是基础表)选
择数据比少之阐明,这样排序更高效,如果发生link表(多对准几近中间表),那么将link表放最右边作为基础表,在默认情况下oracle会自动优化,但是要
果配置了优化器的景下,可能不会见自动优化,所以平时极端好能按这法编写sql 
  6)Where字句规则: 
  Oracle
中Where字句时打右侧为左处理的,表内的连日写以另标准化之前,能过滤掉好多之数据的基准,放在where的末尾,
另外!=符号比较的排将非下索引,列经过了算(如变大写等)不会见使用索引(需要建立从函数),
is null、is not null等优化器不会见利用索引 
  7)使用Exits Not Exits 替代 In Not in 
  8)合理运用工作,合理设置工作隔离性,数据库的数量操作比较消耗数据库资源的,尽量采取批量拍卖,以降低事务操作次数

http://www.cnblogs.com/roucheng/

相关文章