下载此文档

ORACLE-Select语句执行顺序及如何提高Oracle基本查询效率.doc


文档分类:IT计算机 | 页数:约8页 举报非法文档有奖
1/8
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/8 下载此文档
文档列表 文档介绍
ORACLE-Select语句执行顺序及如何提高Oracle基本查询效率.doc【转】 ORACLE-Select 语句执行顺序及如何提高 Oracle 基本查询效率 博客分类: ORCALE
转自: **********/
首先,要了解在 Oracle 中 Sql 语句运行的机制。以下是 sql 语句的执行步骤:
)语法分析,分析语句的语法是否符合规范,衡量语句中各表达式的意义。
)语义分析, 检查语句中涉及的所有数据库对象是否存在, 且用户有相应的
权限。
)视图转换,将涉及视图的查询语句转换为相应的对基表查询语句。
)表达式转换, 将复杂的 SQL 表达式转换为较简单的等效连接表达式。
)选择优化器,不同的优化器一般产生不同的“执行计划”
)选择连接方式,ORACLE有三种连接方式,对多表连接 ORACLE可选择适 当的连接方式。
)选择连接顺序, 对多表连接 ORACLE 选择哪一对表先连接,选择这两表 中哪个表做为源数据表。
)选择数据的搜索路径, 根据以上条件选择合适的数据搜索路径, 如是选用
全表搜索还是利用索引或是其他的方式。
)运行“执行计划” 。
这里不得不提的是 Oracle 共享原理:将执行过的 SQL 语句存放在内存的共享池 (shared buffer pool)中,可以被所有的数据库用户共享当你执行一个 SQL语句(有时被称为
一个游标 ) 时, 如果它和之前的执行过的语句完全相同 , Oracle 就能很快获得已经被解析的语 句以及最好的 执行路径•这个功能大大地提高了 SQL的执行性能并节省了内存的使用。
在了解了 SQL语句的运行机制与 Oracle共享原理后,我们可以知道 SQL语句的书写 方式对SQL语句的执行效率有很大的影响。 那么下面我们了解一下 SQL中Select语句中各个 关键字执行的顺序。
SQL 语言不同于其他编程语言的最明显特征是处理代码的顺序。 在大多数据库语言中,
代码按编码顺序被处理。但在 SQL语句中,第一个被处理的子句是 FRO M而不是第一出现的 SELECT SQL查询处理的步骤序号:
(8) SELECT (9) DISTINCT (11) <TOP_specification> <select_list>
FROM <left_table>
<join_type> JOIN <right_table>
ON <join_condition>
WHERE <where_condition>
GROUP BY <group_by_list>
WITH {CUBE | ROLLUP}
HAVING <having_condition>
(10) ORDER BY <order_by_list>
以上每个步骤都会产生一个虚拟表,该虚拟表被用作下一个步骤的输入。这些虚拟表对 调用者(客户端应用程序或者外部查询 )不可用。只有最后一步生成的表才会会给调用者。如 果没有在查询中指定某一个子句,将跳过相应的步骤。
逻辑查询处理阶段简介:
1、 FROM对FROMF句中的前两个表执行笛卡尔积 (交叉联接),生成虚拟表 VT1。表名 执行顺序是从后往前,所以数据较少的表尽量放后。
2、 ON:对VT1应用O

ORACLE-Select语句执行顺序及如何提高Oracle基本查询效率 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数8
  • 收藏数0 收藏
  • 顶次数0
  • 上传人小辰GG
  • 文件大小100 KB
  • 时间2021-11-19