Oracle数据库优化的经验总结建议收藏

个人理解,数据库性能最关键的因素在于IO,因为操作内存是快速的,但是读写磁盘是速度很慢的,优化数据库最关键的问题在于减少磁盘的IO,就个人理解应该分为物理的和逻辑的优化,物理的是指oracle产品

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

Oracle数据库优化的经验总结建议收藏此处内容已经被作者隐藏,请输入验证码查看内容
验证码:
请关注本站微信公众号,回复“”,获取验证码。在微信里搜索“”或者“”或者微信扫描右侧二维码都可以关注本站微信公众号。

个人理解,数据库性能最关键的因素在于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 中多表查询是根据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/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/120744.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 计算机入门基础知识

    计算机入门基础知识好久以前帮学弟学妹们总结的计算机入门基础资料,我觉得算是很好的科普入门资料了。毕竟是我辛苦一字一字写出来的。。。目录1.1.1计算机的发展史1946年ENIAC在宾夕法尼亚大学被制作,数字积分

  • 不要再被骗了——QQ盗号原理大揭秘

    不要再被骗了——QQ盗号原理大揭秘前言相信大家在懵懂无知的时候都有被盗号的经历吧,QQ胡乱的加好友,突然有个好友传了个文件给你,打开以后发现QQ竟然显示强制下线,然后再也上不去了QAQ,很明显,QQ号被人盗了。最近也是很多小伙伴私信我,也看了一些人发空间说QQ号被盗了啥的,以及我自己收到的一些诈骗请求。网上针对防骗这块的文章几乎没有,为了不让更多的人受害,下面我将会以最真实朴素的语言介绍最常见的一种盗号诈骗方式,浅析一下这个盗…

  • wing是什么_分段计价的数学题

    wing是什么_分段计价的数学题给定一个由 n 行数字组成的数字梯形如下图所示。梯形的第一行有 m 个数字。从梯形的顶部的 m 个数字开始,在每个数字处可以沿左下或右下方向移动,形成一条从梯形的顶至底的路径。规则 1:从梯形的顶至底的 m 条路径互不相交。规则 2:从梯形的顶至底的 m 条路径仅在数字结点处相交。规则 3:从梯形的顶至底的 m 条路径允许在数字结点相交或边相交。对于给定的数字梯形,分别按照规则 1,规则 2,和规则 3 计算出从梯形的顶至底的 m 条路径,使这 m 条路径经过的数字总和最大。输入格式第 1

  • python社交网络分析_python编程:从入门到实践

    python社交网络分析_python编程:从入门到实践NLP之情感分析:基于python编程(jieba库)实现中文文本情感分析(得到的是情感评分)输出结果1、测试对象data1=’今天上海的天气真好!我的心情非常高兴!如果去旅游的话我会非常兴奋!和你一起去旅游我会更加幸福!’data2=’今天上海天气真差,非常讨厌下雨,把我冻坏了,心情太不高兴了,不高兴,我真的很生气!’data3=’美国华裔科学家,祖籍江苏扬州市高邮县,…

  • linux开放8080端口命令_centos开放80端口

    linux开放8080端口命令_centos开放80端口1.添加映射iptables-tnat-APREROUTING-ptcp–dport80-jREDIRECT–to-port8080-tnat:指出我要操作什么表.(不写就表示filter.默认是filter)-APREROUTING:A添加的意思.表示我要在PREROUTING中添加一个规则–dport80:如果请求80端…

  • logcat — 基本用法

    logcat — 基本用法1.Log类是一个日志类,我们可以在代码中使用logcat打印出消息常见的日志记录方法有:v(String,String)–verbose显示全部信息d(String,String)–

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号