一、sql语句执行的步骤
1、语法分析
2、语义分析(检查数据库对象是否存在,用户是否有权限)
3、视图转换(将涉及到视图的操作语句转换成对基表的查询语句)
4、表达式转换(将复杂的sql表达式转换成简单的等效连接表达式)
5、选择优化器(优化器不同,执行计划也不同)
6、选择连接方式(oracle 有三种连接方式)
7、选择连接顺序 (多表连接的时候,选择哪一个表先连)
8、选择数据的搜索路径 (全表搜索、索引或者其他方式)
9、运行执行计划
二、优化器与执行计划
执行sql之前要分析语句的执行计划,执行计划由optimizer(优化器)来执行。
优化器的两种方式:基于规则的优化方式(RBO)和基于代价的优化方式(CBO)
RBO:遵循ORACLE内部定的一些规则。
CBO:看语句的代价,这里的代价主要指CPU和内存。优化器主要参照统计信息来判断是否使用这种方式。
Rule:基于规则的方式。
Choose:oracle默认的方式。表或索引有统计信息,走CBO方式。没有统计信息,走RBO方式。
First Rows:和Choose方式类似。区别:当有统计信息的时候,以最快的方式返回最先几行。
All Rows:oracle默认的模式,选择一种在最短的时间内返回所有数据的执行计划,基于整体成本的考虑。
First_row_n:根据成本而不是硬编码来选择执行计划,n是想获得的结果集的前n条记录。分页需求中会用到。
三、分析工具
1、explain plan
2、Autotrace
3、Tkprof
实践:explain plan set statement_id='T_TEST' for select * from scott.emp
SELECT A.OPERATION,OPTIONS,OBJECT_NAME,OBJECT_TYPE,ID,PARENT_ID
FROM PLAN_TABLE a
WHERE STATEMENT_ID='T_TEST'
ORDER BY Id;
分享到:
相关推荐
SQLSERVER执行计划 解剖 SQL SERVER 执行计划
剖析SQL Server执行计划
通过分析SQL语句的执行计划优化SQL,F5执行计划如何优化
SQL ORACLE 执行计划 分析 数据库
本文档主要介绍与SQL调整有关的内容,内容涉及多个方面:SQL语句执行的过程、ORACLE优化器,表之间的关联,如何得到SQL执行计划,如何分析执行计划等内容,从而由浅到深的方式了解SQL优化的过程,使大家逐步步入SQL...
详解一个sql server执行计划样例,有借鉴意义哦
db2查看sql执行计划
##通过sqlcmd执行sql文件 由于sql文件过大,超过了100M,再数据库的窗口执行,结果超出内存了,对于特别大的sql文件可以使用sqlcmd进行执行 ###1.打开cmd窗口 运行–cmd–进入到sql文件所在的文件夹。 如果是win7可...
看不懂sql server 执行计划,该文档可以给你帮助!
关于SQL Server执行计划的详细介绍
Oracle SQL执行计划分析器功能的创建3步曲: 1 首先,编译XYG_ALD_SESS_PKG的Package头。 (XYG_ALD_SESS_PKG.sql) 2 接着要建立好下面的4个视图对象。因为XYG_ALD_SESS_PKG包体会用到。(View Create Script v...
如何取得 sql 2005的执行计划 query plan
获取 SQL 语句的执行计划 方法 1:使用 autotrace 查看执行计划 配置使用 autotrace 下面的例子为用户 scott 配置使用 autotrace。 创建角色 PLUSTRACE,并将角色授予用户 scott
介绍oracle的执行计划概念,和如何对sql进行优化
Oracle在执行一个SQL之前,首先需要看一下SQL的执行计划,然后在按照执行计划执行SQL,分析执行计划的工作是由优化器来执行的,在不同的条件下,一个SQL可能存在多条执行计划,但是在某个特定的时间点,特定的环境下...
SQL SERVER 图形执行计划中的图标学习