Oracle优化笔记

2016-11-22

子查询:标量子查询 内联视图(in-line view) 半连接/反连接

标量子查询 select 后跟子查询 类似自定义函数 可用开窗函数之类的改写

内联视图(in-line view) from 后跟子查询 类似设计View 子查询套子查询是垃圾设计会带来性能问题

半连接就是 where 后面有in/exists 的子查询

反连接就是where 后面跟的有not in/not exists 的子查询  注意:反连接中子查询返回的列不可存在空值

 

SQL三段分拆法

 

SELECT部分 重点关注标量子查询 自定义函数

FROM后面 重点关注有没有内联视图 有没有视图 有没有视图合并

WHERE 条件部分 看有没有IN/NOT IN,EXISTS/NOT EXISTS子查询 有没有外连接 有没有在列上面有函数导致不走索引的

SQL_TRACE

 

alter session set sql_trace = true;

alter database set sql_trace = true;

alter session set tracefile_identifier = ‘TEST_TRACE‘;

Oracle11g trace文件默认路径: $ORACLE_BASE/diag/rdbms/orcl/orcl/trace

时间: 2024-08-02 06:58:11

Oracle优化笔记的相关文章

oracle sql优化笔记

oracle优化一般分为:1.sql优化(现在oracle都会根据sql语句先进行必要的优化处理,这种应该用户不大了,但是像关联和嵌套查询肯定是和影响性能的) A.oracle的sql语句的条件是从右往左执行的,如下语句:select * from t_user where nation='回族' and age > 20.oracle首先是查询年龄大于20岁的,再查询民族为回族的,最后汇总两次得到的结果. B.根据A中说的sql语句执行特点,上面的语句是可以进行优化的.A中的sql语句查询条件

oracle学习笔记 SQL语句执行过程剖析讲课

oracle学习笔记 SQL语句执行过程剖析讲课 这节课通过讲述一条SQL语句进入数据库 和其在数据库中的整个的执行过程 把数据库里面的体系结构串一下. 让大家再进一步了解oracle数据库里面的各个进程.存储结构以及内存结构的关联关系. 首先来讲整个体系中有客户端.实例和数据库 数据库里有三类文件 控制文件ctl.数据文件dbf.日志文件log 实例中SGA有六大池子 第一大内存区shared pool即共享池 第二大内存区buffer cache 第三块是redo log 我们主要讲上面的三

oracle学习笔记 swap

oracle学习笔记 swap 这节课老师讲了很多,虽说看起来很多都没有用,但老师讲的仔细,我们应该认真了解一下. 这节课主要内容是硬盘的工作机制,工作原理, 以一些系统性能分析工具为线,并附带讲了系统中cpu.内存的工作机制. 对以后进行orace的优化,操作系统的学习非常有帮助. 此前讲过计算机的工作机制. 程序在硬盘上,执行时首先被调入内存成为进程,cpu按照时间片循环的轮回的执行各个进程. 表面上看各个进程都在运行,实际上很多进程都被时间片阻挡在cpu之外. 从宏观上看多个进程同时在执行

Oracle 学习笔记 17 -- 异常处理(PL/SQL)

程序在执行过程中出现异常是正常的,在程序的编写过程中出现异常也是不可避免的.但是要有相应的异常处理的机 制,来保证程序的正常执行.PL/SQL程序执行过程中出现的错误,称为异常.一个优秀的程序都应该能够正确处理 各种出错的情况,并尽可能的从错误中恢复.PL/SQL提供了异常处理机制. 概念: 异常处理(exception)是用来处理正常执行过程中未预料的事件,程序块的异常处理定义的错误和自定义的错误, 由于PL/SQL程序块一旦产生异常而没有指出如何处理时,程序就会异常的终止. 有三种类型的错误

oracle学习笔记之用户管理-3

用户权限机制 1.不同用户表权限的赋予 grant select on scott.emp to software; ---当前登录用户为表所有者,则表名前不用指定所属用户 2.用software登录后 select * from scott.emp; ---software才有权限查询到scott的emp表 方案(schema) 当用户创建好后,如果该用户创建了一个数据对象(如表),此时dbms会创建一个对应的方案与改用户对应,并且该方案的名称和用户名称一致. system与scott都拥有自

【Oracle学习笔记】

内容主要包含: (1)三种循环及其简化 (2)游标的使用 (3)异常处理 (4)存储过程 (5)存储函数 (6)触发器 (7)其他pl/sql操作 ---------------loop循环定义变量-------------------- declare cursor c1 is select * from emp;# rec emp%rowtype;# i numeber:=1; # v_count number;begin# select count(*) into v_count from

oracle学习笔记(二)

设置归档模式(mount状态) ALTER database ARCHIVELOG; //关闭数据库 shutdown immediate //启动数据库到mount状态 startup mount alter database archivelog; //查看归档状态 archive log list; SQL> archive log list; 数据库日志模式 存档模式 自动存档 启用 存档终点 USE_DB_RECOVERY_FILE_DEST 最早的联机日志序列 1 下一个存档日志序列

oracle琐碎笔记

Oracle知识点 ps:由于是自己看的所以笔记比较乱,大家谅解 Commit rollback Sql核心语句之select Selct中要用到以下语句 From语句 Where语句 Group by语句 Group by 来进行分组,分组的参数如果有重复的,只返回一个行值.(比如我按id分组如果记录中有两个id为1的记录,这时候只返回一行) Having语句 将分组汇总后的查询结果限定为只有该子句的条件为真的数据行. 一般情况下having放在groupby后面执行. Order by语句

ORACLE优化器RBO与CBO介绍总结

RBO和CBO的基本概念 Oracle数据库中的优化器又叫查询优化器(Query Optimizer).它是SQL分析和执行的优化工具,它负责生成.制定SQL的执行计划.Oracle的优化器有两种,基于规则的优化器(RBO)与基于代价的优化器(CBO) RBO: Rule-Based Optimization 基于规则的优化器 CBO: Cost-Based Optimization 基于代价的优化器 RBO自ORACLE 6以来被采用,一直沿用至ORACLE 9i. ORACLE 10g开始,