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)
上一篇 2021年12月20日 下午7:00
下一篇 2021年12月20日 下午7:00


相关推荐

  • PyCharm安装完成后打不开

    PyCharm安装完成后打不开PyCharm 安装后打不开工欲善其事 必先利其器 买了个网课 今天开始跟着学习 python 网课老师上来说让安装个专业版的 pycharm 说是使用社区版的话以后可能会遇到一些实际情况和视频不符的情况 所以就开始了我痛苦的时光 在网上找了个 pycharm 的安装教程 然后看见很多人说 pycharm 需要购买 但是万能的网友们已经找到了激活成功教程的办法 先在官网上根据自己电脑的实际情况下载合适的 pych

    2026年3月27日
    2
  • idea配置tomcat的方法

    idea配置tomcat的方法1 打开 idea 在项目运行列表下拉选择 editConfigur 2 在打开的界面 点击 再选择下面的 TomcatServer 下的 local3 在打开的界面 第一行 Name 中填入 tomcat 的名称然后点击 Configure 在 ApplicationS 界面 点击 在 TomcatServer 配置界面选择要添加的 tomcat 的路径 最后点击 OK 选择配置好的 tomcat 点击 OK 4 再配置其它选项 最后点击 OK 即可 如下图

    2026年3月27日
    4
  • Go开发利器Cursor:插件安装+调试配置一站式教程

    Go开发利器Cursor:插件安装+调试配置一站式教程

    2026年3月15日
    3
  • 命令提示符窗口中的快捷键及其使用说明

    命令提示符窗口中的快捷键及其使用说明命令提示符窗口中的快捷键及其使用说明首先点击 开始 运行 输入 cmd F1 按 F1 一次 命令提示符向后切换到已经执行过的命令字符 如果已经是最后的一条的命令 则不进行任何切换操作 例子 之前输入 dir 按 F1 一次后自动输入 d 按两次自动输入 i 三次自动输入 r F2 按下此键后 会提示 输入可复制的字符数量 此时直接按下上次输入命令中包含的字

    2026年3月26日
    2
  • STM32看门狗–窗口看门狗

    STM32看门狗–窗口看门狗stm32有两个看门狗,独立看门狗和窗口看门狗,其实两者的功能是类似的,只是喂狗的限制时间不同。 独立看门狗是限制喂狗时间在0-x内,x由你的相关寄存器决定。喂狗的时间不能过晚。窗口看门狗,所以称之为窗口就是因为其喂狗时间是一个有上下限的范围内,你可以通过设定相关寄存器,设定其上限时间和下限时间。喂狗的时间不能过早也不能过晚。图1&n…

    2022年5月30日
    30
  • C语言的字符串分割

    说起来很有意思,自认为对C语言理解得还是比较深刻的。但居然到今天才知道有个strtok函数,试用了一下突然感慨以前做了多少重复劳动。每次需要解析配置文件,每次需要分割字符串,居然都是自己去分割字符串,

    2021年12月24日
    41

发表回复

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

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