`
vipshichg
  • 浏览: 260886 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

关于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)合理使用事务,合理设置事务隔离性,数据库的数据操作比较消耗数据库资源的,尽量使用批量处理,以降低事务操作次数
分享到:
评论

相关推荐

    Oracle数据库学习指南

    10. Oracle8的不安全因素及几点说明 11. Oracle常见错误代码 12. Oracle常用Script 13. Oracle常用数据字典 14. ORACLE回滚段管理(上) 15. ORACLE回滚段管理(下) 16. Oracle基于Client-Server的性能调整 ...

    Oracle DBA优化数据库性能心得体会

    很多的时侯,做Oracle DBA的我们,当应用管理员向我们通告现在应用很慢、数据库很慢的时侯,我们到数据库时做几个示例的Select也发现同样的问题时,有些时侯我们会无从下手,因为我们认为数据库的各种命种率都是满足...

    Oracle数据库管理员技术指南

    1.6.1 利用 Oracle 安装程序创建数据库 1.6.2 使用安装程序创建数据库的注意 事项 1.6.3 怎样建立自己的定制数据库创建 脚本 1.6.4 如何从已有数据库克隆数据库 1.6.5 怎样利用 Database Configuration ...

    Oracle数据库的SQL语句的优化

    相信你一定会用Pl/sql Developer、Toad等工具去看一个语句的执行计划,不过你可能对Rule、Choose、First rows、All rows这几项有疑问,因为我当初也是这样的,那时我也疑惑为什么选了以上的不同的项,执行计划就变了?

    oracle 12c 数据库 教程

    (三)使用 DBCA 创建 Oracle 数据库 21 (四)验证 Oracle Database 12cR2 环境 25 (五)使用 oracle-database-server-12cR2-preinstall 包 25 三、管理数据库实例 27 (一)管理工具 27 (二)初始化参数 27 (三...

    JAVA ORACLE数据库资料讲解

    数据库设计 以及所有数据库的性能优化 所谓数据库设计就是根据具体应用环境设计出合理的数据库模式。其中应用环境包括:业务需求、数据需求和技术条件等具体情况,而数据库模式包括数据之间的联系、数据应满足的约束...

    oracle实验报告

    在PL/SQL块中使用SELECT语句时注意几点: (1)SELECT语句必须含有INTO子句。 (2)INTO子句后的变量个数和位置及数据类型必须和SELECT命令后的字段名表相同。 (3)INTO子句后可以是简单类型变量或组合类型变量。 ...

    数据库优化设计方案.doc

    数据库优化方案设计 XX信息管理平台从大型数据库环境四个不同级别的调整分析入手,分析数据库平台的系 统结构和工作机理,从九个不同方面设计数据库的优化方案。 对于数据库的数据优化,主要有四个不同的调整级别,...

    DBA优化数据库性能心得

    DBA优化数据库性能心得,很多的时侯,做Oracle DBA的我们,当应用管理员向我们通告现在应用很慢、数据库很慢的时侯,我们到数据库时做几个示例的Select也发现同样的问题时,有些时侯我们会无从下手,因为我们认为...

    Oracle和MySQL高性能数据库设计

    前言:系统上线几年,性能慢慢的变差,不断优化SQL,但并非所有的SQL都是可以通过技术手段优化。只有调整数据库设计,此时发现非常困难,因为数据库就像是房子的地基,如果地基要改变,上层代码都要相应调整,工作量...

    数据库知识点总结

    7. 请说出你知道的索引失效的几种情况?8. 什么是聚簇索引与非聚簇索引9. Mysql索引主要使用的数据结构有哪些?10. 谈谈MyISAM和innoDb实现Btree索引方式的区别11. B+tree与B-tree的区别是什么?为什么B+tree更适合...

    Oracle 数据库中创建合理的数据库索引

    虽然这可以通过一句话来概括优化的索引的基本准则,但是要做到这一点的话,需要数据库管理员做出很大的努力。具体的来说,要做到这个三个适当有如下几个要求。 一、 根据表的大小来创建索引。 虽然给表创建索引,...

    深入浅出Oracle: DBA入门、进阶与诊断案例(eygle)原生PDF+源代码--eygle(盖国强)

     本书是ITPUB技术丛书的第三本,在《Oracle数据库DBA专题技术精粹》和《Oracle数据库性能优化》两书出版的两年多以来,ITPUB和Oracle市场都有了长足的发展,希望本书的出现能为读者带来更深入的技术知识和更多的...

    oracle 优化的一点体会

    关于oracle 优化的内容很多,概念庞杂,不过可以总结出一个大纲性的东西作为需要考虑的方向,然后再逐步细化。oracle优化按重要性需要考虑设计、开发、调整几个方面。首先是设计,这是最重要的部分,借用TOM的话:...

    深入解析Oracle.DBA入门进阶与诊断案例

    2.4.4 Oracle数据库的引导 91 2.4.5 系统对象与bootstrap$ 92 2.4.6 bootstrap$的重要性 94 2.4.7 BBED工具的简要介绍 95 2.4.8 坏块的处理与恢复 97 第3章 参数及参数文件 103 3.1 初始化参数的分类...

Global site tag (gtag.js) - Google Analytics