oracle SQL配置文件 5

SQL配置文件如何影响查询优化器?Oracle并未在其文档中给出答案。我认为高效地使用特性的最好方法就是了解它的工作原理。因此,让我们来看看它的内部。简单地说,SQL配置文件保存了一组hint来表示查询优化器执行的优化。

其中一些hint是在文档里有记录的,并且也用于其他环境。其他hint是未公开的,并且通常只会由SQL配置文件使用。换句话说,它们都为了这个目的而使用。它们全部都是普通的hint,因此也可以直接加入到SQL语句中。

在讨论如何查询与SQL配置文件关联的hint列表前,让我们先引入一个基于profile_all_rows.sql脚本的例子。它的目的是为了展示,使用SQL配置文件是可以命令查询优化器改变优化模式的。在这个特定的例子中,需要改变优化器模式,是因为查询包含了rule hint,这会强制查询优化器在基于规则的模式下工作。查询和它的执行计划如下:

select /*+ rule */ * FROM t ORDER BY id;

Note

- rule based optimizer used (consider using cbo)