1. 选用适合的ORACLE优化器 ORACLE的优化器共有3种: a. RULE (基于规则) b. COST (基于成本) c. CHOOSE (选择性) 设置缺省的优化器,可以通过对init.ora文件中OPTIMIZER_MODE参数的各种声明,如RULE,COST,CHOOSE,ALL_R ...
分类:
数据库 时间:
2018-01-26 17:10:37
阅读次数:
262
SQL执行效率对系统使用有很大影响,本文总结平时排查问题中遇到的一些Oracle优化问题的解决方案,或者日常学习所得。 1. Oracle sql执行顺序 sql语法的分析是从右到左。 1.1 SQL语句的执行步骤 1)语法分析,分析语句的语法是否符合规范,衡量语句中各表达式的意义。 2)语义分析, ...
分类:
数据库 时间:
2018-01-17 00:24:46
阅读次数:
183
1.用索引提高效率: 索引是表的一个概念部分,用来提高检索数据的效率,ORACLE使用了一个复杂的自平衡B-tree结构. 通常,通过索引查询数据比全表扫描要快. 当ORACLE找出执行查询和Update语句的最佳路径时, ORACLE优化器将使用索引.同样在联结多个表时使用索引也可以提高效率.另一 ...
分类:
数据库 时间:
2018-01-02 16:48:56
阅读次数:
198
最近系统的研究了一下ORACLE SQL语句性能调优,在此大言不惭的得出一个观点——网上很多性能调优的结论都是错误的或者不周全的。现在的DBA大牛些都太低调了,不出来斧正一下,小弟来借这个机会吐槽一下,说的不对,欢迎拍砖,特别是版本问题: 转入正题:网络上大部分结论“可能”适用于ORACLE8或者以 ...
分类:
数据库 时间:
2017-10-06 18:08:43
阅读次数:
246
--查询正在执行的SQL语句 select a.program, b.spid, c.sql_text,c.SQL_FULLTEXT,c.SQL_IDfrom v$session a, v$process b, v$sqlarea cwhere a.paddr = b.addrand a.sql_h ...
分类:
数据库 时间:
2017-09-25 14:34:46
阅读次数:
209
需要绑定SQL执行计划常见的几种情况:SQL执行计划突变,导致数据库性能下降,从历史执行计划找一个合理的,进行绑定。SQL无法使用更优的执行计划,且无历史执行计划,可通过hint手工构造的方式,进行绑定。某些Bug引起优化器生成较差的执行计划。在bug修复前,进行绑定。ORACLE..
分类:
数据库 时间:
2017-08-06 19:21:34
阅读次数:
1177
《访问数据的方法》访问表中的数据有两种:1、直接访问表2、先访问索引,再回表1、直接访问表的两种方法:①、全表扫描全表扫描是指Oracle在访问目标表的数据时,会从该表所占用的第一个区(extent)的第一个块(block)开始扫描,一直扫描到该表的高水位线,这段范围内的所有..
分类:
数据库 时间:
2017-08-03 20:07:31
阅读次数:
179
优化器的基础:1、Oracle里的优化器:优化器是Oracle数据库中内置的一个核心子系统,优化器的目的就是按照一定的判断原则来得到它认为目标sql在当前情形下最高效的执行路径,也就是说是为了得到目标sql的执行计划。Oracle数据库的优化器分为:RBO和CBO两种类型:RBO:基于规则..
分类:
数据库 时间:
2017-08-01 21:50:49
阅读次数:
190
第三部分 sql优化总结 1. 优化一般原则 2. 具体注意事项 1. SQL优化一般性原则 1)目标:减少服务器资源消耗(主要是磁盘IO) 2)设计: 1. 尽量依赖oracle优化器 2. 合适的索引(数据重复量大的列不要简历二叉树索引,可以使用位图索引; 对应数据操作频繁的表,索引需要定期重建 ...
分类:
数据库 时间:
2017-07-15 23:59:40
阅读次数:
398
以下内容适用于oracle 10.2.0.5及其以上版本 一个查询很慢,原始SQL如下: 表都不大,执行计划如下: 这个执行计划,看起来无比正常,应该要left join的都有。 但问题的关键在于10 步骤-- MERGE JOIN CARTESIAN。笛卡尔乘积的排序合并连接,这个需要耗费很长时间 ...
分类:
数据库 时间:
2017-07-07 20:02:06
阅读次数:
292