一、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;
分享到:
相关推荐
SQL 执行计划简单分析 在 SQL 优化中,分析执行计划是一个非常重要的步骤。执行计划可以帮助我们了解 SQL 语句的执行过程、资源消耗和性能瓶颈。Oracle 数据库提供了多种方法来查看 SQL 语句的执行计划,例如使用 ...
### 剖析SQL Server执行计划 #### 一、引言与概述 SQL Server执行计划是数据库管理系统在处理查询请求时所采用的一系列步骤和技术的集合。这些计划旨在优化查询性能,确保数据能够以最高效的方式被检索。本书《SQL...
本文档主要介绍了与SQL调整有关的内容,涉及多个方面:SQL语句执行的过程、ORACLE优化器、表之间的关联、如何得到SQL执行计划、如何分析执行计划等内容。通过从浅入深的方式了解SQL优化的过程,使大家逐步步入SQL...
在DB2数据库管理系统中,了解SQL执行计划对于优化查询性能、提高系统运行效率至关重要。本文将详细介绍如何在DB2中查看SQL执行计划,并通过实际案例深入解析相关命令及其参数的作用。 ### 一、DB2简介 DB2是IBM...
### 解剖SQL Server执行计划 #### 一、执行计划概览 在深入探讨SQL Server执行计划之前,我们首先需要理解什么是执行计划以及它为何如此重要。执行计划是SQL Server优化器为查询选择的最佳运行策略。当数据库...
通过对SQL语句的执行计划进行分析,我们可以找到优化查询性能的策略,从而提高数据库系统的整体性能。这篇博客"通过分析SQL语句的执行计划优化SQL(总结)"深入探讨了这一主题,下面将对其中的主要知识点进行详细阐述...
SQL执行计划是数据库管理系统在处理SQL查询时的一个详细步骤蓝图,它是优化器为了最高效地执行查询而选择的策略。理解SQL执行计划对于提升数据库性能至关重要,因为通过分析执行计划,我们可以识别潜在的性能瓶颈,...
本文档主要介绍与SQL调整有关的内容,内容涉及多个方面:SQL语句执行的过程、ORACLE优化器,表之间的关联,如何得到SQL执行计划,如何分析执行计划等内容,从而由浅到深的方式了解SQL优化的过程,使大家逐步步入SQL...
### 获取SQL语句的执行计划 在Oracle数据库中,了解SQL语句的执行计划对于优化查询性能至关重要。本文档详细介绍了几种不同的方法来获取SQL语句的执行计划,包括使用autotrace、EXPLAIN PLAN以及DBMS_XPLAN.DISPLAY...
SQL Server 执行计划详解 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 Plan Management, SPM)是Oracle 11g引入的一个新特性,用于管理和固定SQL语句的执行计划,防止由于执行计划的改变导致性能下降。在11g之前,管理员可以通过存储大纲(Stored Outlines)或SQL ...
Row Source则表示SQL执行过程中的数据源,它可以是表、视图、索引或者其他数据源。理解Row Source对于分析SQL执行路径至关重要。Driving Table是查询中驱动整个连接操作的表,它的选择直接影响到查询效率。Probed ...
##通过sqlcmd执行sql文件 由于sql文件过大,超过了100M,再数据库的窗口执行,结果超出内存了,对于特别大的sql文件可以使用sqlcmd进行执行 ###1.打开cmd窗口 运行–cmd–进入到sql文件所在的文件夹。 如果是win7可...