首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Oracle SQL性能优化

(1)      选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table...当ORACLE找出执行查询和Update语句的最佳路径时, ORACLE优化器将使用索引. 同样在联结多个表时使用索引也可以提高效率....当ORACLE”遇到”NOT,他就会停止使用索引转而执行全表扫描. (22) 避免在索引列上使用计算. WHERE子句中,如果索引列是函数的一部分.优化器将不使用索引而使用全表扫描....对于这块内存的优化也是相当重要的....如果你的数据库的SORT_AREA_SIZE调配得好, 使用UNION , MINUS, INTERSECT也是可以考虑的, 毕竟它们的可读性很强 (34) 优化GROUP BY: 提高GROUP

2.8K70
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Oracle 性能优化总结

    二、数据库访问性能优化 特别说明: 1、 本文只是面对数据库应用开发的程序员,不适合专业DBA,DBA在数据库性能优化方面需要了解更多的知识; 2、 本文许多示例及概念是基于Oracle数据库描述,...下图是一个Oracle数据库典型的物理结构,一个数据库可以包括多个数据文件,一个数据文件内又包含多个数据块; ?...首先大部份数据库都会有SQL长度和IN里个数的限制,如ORACLE的IN里就不允许超过1000个值。...Oracle jdbc fetchsize默认值为10,由上测试可以看出fetchsize对性能影响还是比较大的,但是当fetchsize大于100时就基本上没有影响了。...使用绑定变量为何会提高SQL解析性能,这个需要从数据库SQL执行原理说明,一条SQL在Oracle数据库中的执行过程如下图所示: ?

    2.3K21

    Oracle优化04-Optimizer优化

    ---- Optimizer概述 Oracle数据库中的优化器是SQL分析和执行的优化工具,它负责制定SQL的执行计划,也就是它负责保证SQL执行效率最高....Oracle优化器有两种 RBO 基于规则的优化器 CBO 基于代价的优化器 从ORACLE10G开始,RBO已经被弃用(但是我们依然可以通过HINT的方式使用它)。...---- RBO(Rule Based Optimizer) RBO概述 在8i之前,ORACLE使用RBO(Rule Based Optimizer 基于规则的优化器)优化器。...使用 hint /+ rule /的方式强制让ORACLE使用RBO优化器来产生执行计划,结果非常令人失望,不出所料,ORACLE在ID字段有索引的情况下,毫无悬念的全部选择了索引。...(3)语句优化的整体质量高于RBO。 (4)Oracle的大量新特性只能在CBO下运行。例如:HASH_JOIN操作、Bitmap索引、物化视图等。

    1.2K20

    Linux 内核参数优化(for oracle)

    Oracle 不同平台的数据库安装指导为我们部署Oracle提供了一些系统参数设置的建议值,然而建议值是在通用的情况下得出的结论,并非能完全满足不同的需求。...Oracle SGA即是基于此方式来实现Oracle进程之间数据共享。因此SGA的合理设置对Oracle性能有重大的影响。   可以通过ipcs -lm来查看所有的共享内存设置。...对于Oracle 10g,Oracle的对该参数的建议值至少为4096。一般情况下够用。...Oracle 建议将 SEMMNI 的值设置为至少为128 。...注意,该值是一个系统级别的限制,因此该参数的值建议大于等于Oracle用户的limit限制nofile的值     对于Oracle 9i以及10g,Oracle建议该值至少设置为65536。

    4.4K21

    oracle insert优化「建议收藏」

    author:skate time:2010/10/19 ---- insert优化 要想提高insert的速度,首先要知道什么影响insert慢,在执行insert的过程中产生redo和undo,...优化sql语句本身 8. pl/sql批处理 —化整为零,把大事务变成零散的小事务...说明:tb_order_detail_his :7000W记录 tb_order_detail :2000W记录 优化前: INSERT INTO /*+ append */...WHERE tcc.id=tcch.id ) 在做数据归档时,需要做大数据量的insert,对于insert内容少还是可以胜任的,可当要把200多万的数据归档,2个小时都没有成功, 于是对其优化改造...,利用append,parallel,分批处理,nologging方法,使这个200W的数据归档在15分钟就完成 优化后: 通过 mod(tcc.id,10)把内容分10部分提交归档 INSERT

    1.8K10

    Oracle初级性能优化总结

    前言   关于对Oracle数据库查询性能优化的一个简要的总结。 从来数据库优化都是一项艰巨的任务。对于大数据量,访问频繁的系统,优化工作显得尤为重要。...由于Oracle系统的灵活性、复杂性、性能问题的原因多样性以及Oralce数据库的动态特性,优化成为Oracle数据库管理中最困难的领域。...作为一个对数据库了解不多的程序猿,我也只能从最基本的开始着手,慢慢来学习掌握Oracle的基础吧。...因为空值不存在于索引列中,所以where子句中对索引列进行空值比较将使Oracle停用该索引。...上面总结的都是常规的做法,当然具体优化还要根据具体的环境进行处理,处理方式复杂多变,但万变不离其宗。如有错误,请及时通知加以更正,谢谢。

    88430

    Oracle sql 性能优化(一)

    这是我参与「掘金日新计划 · 8 月更文挑战」的第16天,点击查看活动详情 >> 性能优化 2.1【推荐】尽量减少数据库负担 说明: 当执行每条 SQL 语句时, ORACLE 在内部执行了许多工作...减少访问数据库的次数,就能实际上减少 ORACLE 的工作量 \ 2.2【推荐】避免大表关联,大表关联可能存在性能问题 \ 2.4【强制】禁止使用“SELECT *”这样的语句,特别是在程序代码内部 说明...CERT_ID, PARENT_ID, DELIVER_METHOD, ZIPCODE FROM CUST WHERE CUST_ID = 1 \ 2.5【推荐】尽量避免多表的关联操作 说明: 关联表越多,需要 Oracle...2.9.3 【推荐】对于复合索引,SQL 语句的 WHERE 查询条件总是使用索引的第一列 说明: 如果索引是建立在多个列上, 只有在它的第一个列(leading column)被 where 子句 引用时,优化器才会选择使用该索引...ATTR_ID = :ATTR_ID 【说明】: PROD_ATTR_VALUE 表 有 复 合 索 引 PK_PROD_ATTR_VALUE(PROD_ID,ATTR_ID) \ 2.9.4 【推荐】使用 Oracle

    90130

    Oracle中的SQL优化

    (注:如果对表进行了统计分析,ORACLE会自动先进小表的链接,再进行大表的链接) 三.SQL语句索引的利用     1.对操作符的优化(见上节)     2.对条件字段的一些优化:     a.采用函数处理的字段不能利用索引...,如:     substr(hbs_bh,1,4)='5400',优化处理:hbs_bh like '5400%'     trunc(sk_rq)=trunc(sysdate), 优化处理:sk_rq...30     'X'||hbs_bh>'X5400021452',优化处理:hbs_bh>'5400021542'      sk_rq+5=sysdate,优化处理:sk_rq=sysdate-5    ...c.条件内包括了多个本表的字段运算时不能进行索引,如:     ys_df>cx_df,无法进行优化     qc_bh||kh_bh='5400250000',优化处理:qc_bh='5400' and...它可以对SQL进行以下方面的提示     1.目标方面的提示:     COST(按成本优化)     RULE(按规则优化)     CHOOSE(缺省)(ORACLE自动选择成本或规则进行优化

    1.9K20

    Oracle优化器基础知识

    本博客介绍一下属于oracle优化器范畴的一些基础知识,访问数据的方法,分为直接访问数据的方法和访问索引的方法两种,然后有了这些基础知识后,可以参考学习我的另外一篇博客:Oracle优化器简介,对Oracle...的一些原理的简单介绍,对于学习oracle方面的SQL优化是有帮助的,https://cloud.tencent.com/developer/article/1399323 一、访问数据的方法 Oracle...本博客先介绍直接访问数据的方法,下一篇博客在访问索引的方法 1、直接访问数据 Oracle直接访问表中数据的方法又分为两种:一种是全表扫描;另一种是ROWID扫描 1.1 全表扫描 全表扫描是Oracle...数据库来说,B树索引是最常见的了,下面给出B树索引的图,图来自《基于Oracle的SQL优化》一书: ?...创建唯一性索引SQL是: create unique index 索引名 on 表名(列名) 例子,例子来自《基于Oracle的SQL优化》一书: scott用户登录 SQL> create table

    67640
    领券