`
cywhoyi
  • 浏览: 418537 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

oracle优化

阅读更多

恰当控制事务大小,commit不要过于频繁。
在OLTP系统中一定要注意使用绑定变量。
谨用或尽量不要使用in/exists、not in/not exists方式,而应该使用直接连接方式替换。
嵌套循环连接中非常大的表作内表(被驱动表)时,其连接字段上需建有索引。
在返回的结果集大于1万行时,不建议使用嵌套循环连接,应考虑使用哈希连接或排序合并连接进行替换。
两个无序大表的连接,在连接字段无索引时,不建议使用合并排序连接。
含有多表的SQL语句,必须明确指定各表的连接条件,以避免产生迪卡尔积。
在执行频度高,又含有排序操作的SQL语句中,建议使用索引来避免排序操作。
在删除(delete)、插入(insert)、更新(update)频繁的表中,建议不要使用位图索引。
在删除(delete)、插入(insert)、更新(update)操作频繁,而数据又来源于序列的字段上建议尽量不要建立索引。
尽量使用前端匹配的模糊查询(like),以通过使用索引来避免全表扫描。
在建立复合索引时,尽量把最常用的字段放在最前面,尽量把离散值较少的字段往前放,同时还要尽量保证复合索引中至少有一个字段具有非空约束。

不要在选择性较低的字段上建立索引。
尽量不要在较长字符串的字段上建立索引,如char(1000)、varchar2(1000)等。
不要在语句的where条件中对字段进行数学表达式运算。
在where条件中对字段使用函数,会导致用不上索引,可以考虑建立函数索引。
在业务逻辑允许的情况下,尽量使用union all来代替union。
如果SQL语句针对同一个字段做多个选择(or)条件,建议考虑使用no_expand提示来避免串联(concatenation)操作。
用case语句合并多次表扫描
慎用distinct、union、order by、group by语句,因为这些语句会引起排序,在无法消除排序的情况下尽量不要使用。
当使用索引产生的逻辑I/O远远大于表扫描时,应该屏蔽索引,如果字段为数值型的就在表达式后面“+ 0”,为字符型的就并上一个“空串”。
删除分区表数据时,建议考虑使用truncate进行整分区的删除。
对于大批量数据的删除,要考虑使用特殊方式处理,不要使用delete方式。

分享到:
评论

相关推荐

    Oracle优化Oracle优化

    ### Oracle优化方法与实践 #### 一、优化器模式选择 在进行Oracle数据库优化时,首先需要关注的是优化器模式的选择。Oracle提供了多种优化器模式,包括基于规则的优化器(RULE)、基于成本的优化器(COST)以及...

    基于成本的ORACLE优化法则 英文原版

    《基于成本的Oracle优化法则》是数据库专家Jonathan Lewis的一部经典著作,该书深入探讨了Oracle数据库的性能优化策略,特别是在成本基础优化方面。Oracle数据库是全球广泛使用的大型企业级数据库系统,其性能优化...

    Oracle优化常用概念.pptx

    Oracle 优化常用概念 Oracle 优化器是 Oracle 数据库管理系统中一个核心组件,负责根据用户提交的 SQL 语句生成最优的执行计划,以提高查询效率。以下是 Oracle 优化器中的一些常用概念: CBO/RBO Oracle 优化...

    基于成本的oracle优化法则中文版.rar

    "基于成本的Oracle优化法则"是一个重要的概念,它涉及到Oracle数据库查询优化器的工作原理。在这个主题中,我们将深入探讨这一法则,理解其背后的机制,并学习如何利用这些知识来提升数据库性能。 1. **基于成本的...

    Oracle优化器介绍

    Oracle 优化器介绍 Oracle 优化器是 Oracle 数据库中的一种核心组件,负责生成执行计划,以提高 SQL 语句的执行效率。 Oracle 优化器可以分为两大类:基于规则的优化器(RBO)和基于成本的优化器(CBO)。 基于...

    ORACLE优化设计方案

    Oracle优化设计方案旨在提升数据库性能,确保数据安全,便于管理和开发。设计Oracle数据库时,需要遵循一系列基本原则和步骤。 首先,逻辑建模是根据系统需求分析数据间的内在和外在关系,构建整个系统的数据结构。...

Global site tag (gtag.js) - Google Analytics