Oracle数据库优化的经验总计

个体驾驭,数据库品质最首要的要素在于IO,因为操作内部存款和储蓄器是快速的,然而读写磁盘是速度相当的慢的,优化数据库最重庆大学的标题在于减弱磁盘的IO,就个
人精晓应该分为物理的和逻辑的优化,
物理的是指oracle产品本身的一对优化,逻辑优化是指应用程序级别的优化学物理理优化的一些标准:  1)Oracle的运维环境(互连网,硬件等) 
  2)使用方便的优化器 
  3)合理配置oracle实例参数 
  4)建立适当的目录(收缩IO) 
  5)将引得数据和表数据分开在分歧的表空间上(降低IO抵触) 
  6)建立表分区,将数据分别存款和储蓄在差别的分区上(以空间换取时间,减少IO) 
 
 
逻辑上优化: 
  1)能够对表进行逻辑分割,如中国邮电通信用户表,可以依据手提式有线电话机尾数分成十个表,那样对品质会有一定的作用 
  2)Sql语句使用占位符语句,并且开发时候必须根据确定编写制定sql语句(如总体大写,全体大写等)oracle解析语句后会放置到共享池中,
如: 
  select * from Emp where
name=?这些讲话只会在共享池中有一条,而一旦是字符串的话,那就依照分歧名字存在差别的言辞,所以占位符效用较好 
  3)数据库不仅是叁个存款和储蓄数据的地点,同样是贰个编制程序的地方,一些耗费时间的操作,能够经过存款和储蓄进度等在用户较少的情形下实施,从而失去系统选用的高峰时刻,提升数据库质量 
  4)尽量不应用*号,如select * from
Emp,因为要转账为现实的列名是要查数据字典, 相比较耗费时间 
  5)选择有效的表名 
  对于多表连接查询,或然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/

相关文章