【TUNE_ORACLE】Oracle Hint之常用Hint功能概述(三)

来源:这里教程网 时间:2026-03-03 16:27:23 作者:

说明 

1.整理了一些本人平时SQL 调优中常用到的一些Hint,方便大家参考

2.Hint相关文章地址:

Oracle Hint之概念与用法: http://blog.itpub.net/69992972/viewspace-2756965/

Oracle Hint之常用Hint功能概述(一): http://blog.itpub.net/69992972/viewspace-2757087/

Oracle Hint之常用Hint功能概述(二): http://blog.itpub.net/69992972/viewspace-2757182/

Oracle Hint之常用Hint功能概述(三): http://blog.itpub.net/69992972/viewspace-2757238/

Oracle Hint之常用Hint功能概述(四): http://blog.itpub.net/69992972/viewspace-2757242/

Oracle Hint之常用Hint功能概述(五): http://blog.itpub.net/69992972/viewspace-2757273/ 访问路径Hint

Hint

功能概述

举例

/*+ rowid(tab) */

该hint让优化器对指定的表以rowid方式访问

/*+ full(tab) */

该hint让优化器对指定的表进行全表扫描

SELECT /*+ FULL(e) */ employee_id,   last_name FROM emp e WHERE last_name = ‘SMITH’;  --即使“last_name”有索引,也会进行全表扫描

/*+ hash(tab) */

该hint让指示优化器使用哈希扫描来访问指定的表。此hint仅适用于hash cluster中的表

/*+ cluster */

该hint让优化器使用簇(cluster)扫描来访问指定的表。该hint仅适用于索引簇中的表

优化器Hint

Hint

功能概述

举例

/*+ all_rows */

该hint让优化器启用CBO来优化语句块,以达到最佳吞吐量(即最小的总资源消耗)为目标。从Oracle 10g开始的默认优化器模式( 实际工作中默认采用这种方式就行

/*+ rule */

该hint让优化器采用RBO模式,所以该RBO模式仅限于和DRIVING_SITE HINT一起使用,否则和其他hint一起使用就会导致其他hint失效

/*+ first_rows(n)   */

该hint让优化器去优化单个SQL语句以实现快速响应,即选择最有效地返回前n行的执行计划。对于整数n,即为指定要返回的行数。

/*+ choose */

该hint让优化器自动选择是使用CBO还是RBO模式,依据就是数据字典有要访问的表的统计信息,就会采用CBO,反之就采用RBO

/*+ opt_param(‘xxx’   ‘xxx’) */

使用该hint可以仅在当前使用SQL查询时设置初始化系统参数,比session级的系统参数细粒度要更高。该提示仅对以下参数有效:APPROX_FOR_AGGREGATION,APPROX_FOR_COUNT_DISTINCT,APPROX_FOR_PERCENTILE,OPTIMIZER_DYNAMIC_SAMPLING,OPTIMIZER_INDEX_CACHING,OPTIMIZER_INDEX_COST_ADJ,OPTIMIZER_STAR_FORMATION_VIEW 和STAR_TRANSFORMATION_ENABLED。

SELECT /*+   OPT_PARAM('star_transformation_enabled' 'true') */ * FROM tab;

相关推荐