ORACLE执行计划和SQL调优技术指南

需积分: 12 0 下载量 142 浏览量 更新于2024-08-25 收藏 164KB PPT 举报
表连接提示续-ORACLE执行计划和SQL调优 在Oracle数据库中,执行计划和SQL调优是非常重要的两方面内容。执行计划是指Oracle数据库在执行SQL语句时的操作步骤,而SQL调优则是指对SQL语句的优化,以提高查询效率。 表连接提示是指在SQL语句中添加特殊的注释,以指导Oracle数据库的执行计划。这些注释可以强制Oracle数据库使用特定的执行计划,以提高查询效率。今天,我们将讨论两种常用的表连接提示:Use_nl和Star。 Use_nl是指强制对目标表执行嵌套循环连接。这是一种常用的执行计划,特别是在包含两个大表的连接时。Use_nl可以不用更改from子句表的顺序来更改驱动表(使用CBO时,from子句的第一个表)。这是CBO的默认行为,但比较少用。 Star是指强制使用星型查询计划。这是一种常用的执行计划,特别是在查询中至少存在三个表(一个事实表和几个维表),而且事实表(大表)存在恰当的索引(8i可以使用位图索引)。星型查询计划可以提高查询效率,但需要满足特定的条件。 在了解表连接提示之前,我们需要了解一些背景知识,例如执行计划的相关概念、Rowid的概念、Recursive SQL概念、RowSource和Predicate、Driving Table等。 执行计划的相关概念包括执行计划的定义、执行计划的类型、执行计划的优化等。Rowid是指每个表都有的一个伪列,它不是用户定义的,而是系统自己给加上的。Rowid可以像使用其他列那样使用,但是不能删除改列,也不能对该列的值进行修改、插入。 Recursive SQL是指为了执行用户发出的一个SQL语句,Oracle必须执行一些额外的语句。这些额外的语句称之为_recursive calls_或_recursive SQL statements_。Recursive SQL可以是DDL语句,也可以是DML语句。 RowSource是指用在查询中的行的集合,而Predicate是指一个查询中的WHERE限制条件。 Driving Table是指该表又称为外层表(OUTER TABLE)。这个概念用于嵌套与HASH连接中。如果该rowsource返回较多的行数据,则对所有的后续操作有负面影响。 在SQL调优中,我们需要了解执行计划的相关概念、Rowid的概念、Recursive SQL概念、RowSource和Predicate、Driving Table等。只有了解这些背景知识,我们才能更好地使用表连接提示,以提高查询效率。 在ORACLE执行计划和SQL调优中,我们需要了解各种执行计划的类型,例如嵌套循环连接、HASH连接、MERGE连接等。我们需要了解如何使用表连接提示,以指导Oracle数据库的执行计划。只有了解这些背景知识,我们才能更好地使用表连接提示,以提高查询效率。 表连接提示是指在SQL语句中添加特殊的注释,以指导Oracle数据库的执行计划。Use_nl和Star是两种常用的表连接提示。只有了解背景知识,我们才能更好地使用表连接提示,以提高查询效率。