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

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

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

全栈程序员社区此处内容已经被作者隐藏,请输入验证码查看内容
验证码:
请关注本站微信公众号,回复“验证码”,获取验证码。在微信里搜索“全栈程序员社区”或者“www_javaforall_cn”或者微信扫描右侧二维码都可以关注本站微信公众号。

个人理解,数据库性能最关键的因素在于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/

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

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

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 什么时候跳槽,为什么离职,你想好了么?「建议收藏」

    什么时候跳槽,为什么离职,你想好了么?

    2022年2月14日
  • Linux tomcat安装详解

    Linux tomcat安装详解欢迎访问我的个人博客网站:http://www.yanmin99.com/一、tomcat安装1、下载JDK和Tomcat//通过wget下载wgethttp://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.4/bin/apache-tomcat-8.5.4.tar.gzwgethttp://download.ora

    2022年6月2日
  • oracle保留小数位数

    oracle保留小数位数公司需要处理一些报表,需要使用百分率,保留2位小数,只用round和trunc函数都可以实现(round(_data,2)),只是格式不是很工整,对格式要求不严谨的情况下使用round即可公司需要处理一些报表,需要使用百分率,保留2位小数,只用round和trunc函数都可以实现(round(_data,2)),只是格式不是很工整,对格式要求不严谨的情况下使用round即可.个人认为比较方便的一种selectdecode(n_jg,0,’0.00′,trim(to_char(n_jg,’999

    2022年7月24日
  • Qt 编译方式之 qmake[通俗易懂]

    Qt 编译方式之 qmake[通俗易懂]作者:billy版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处QMake简介Qt的帮助文档中对于qmake是这样介绍的:qmake工具有助于简化不同平台上开发项目的构建过程。它自动生成生成makefile,因此创建每个makefile只需要几行信息。您可以将qmake用于任何软件项目,无论它是否使用qt编写。qmake是Qt工具包中带的一个非常…

    2022年5月19日
  • 世界读书日-读还是不读~[通俗易懂]

    一个人只拥有此生此世是不够的,他还应该拥有诗意的世界。——王小波今天是2020年的世界读书日,时间过的就是那么的快,不感概都不行!想想去年的时候,我在CSDN写了一篇 《程序世界,平凡的我》,写的是我读过的一本书《平凡的世界》,很多伙伴给我留言。我也在文章的结尾写了:平凡的世界这本书,让我喜欢上读书,确切的是喜欢上读小说,我之后也读过很多书籍,这些书籍在我人生的成长道路上让我能够做出…

    2022年2月28日
  • 如何免费下载付费音乐歌曲,6个网站+8个APP

    如何免费下载付费音乐歌曲,6个网站+8个APP现在听音乐的软件,QQ音乐,酷狗,网易云等,很多歌曲可以在线听。但是下载某些歌曲或者在线听高品质无损的都需要付费。这一期,给大家推荐的是免费下载付费歌曲工具,包括网站跟APP。网站篇1.VIP

    2022年7月1日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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