• OPT_PARAM Hint


    Applies to: Oracle Server - Enterprise Edition - Version: 10.2.0.1 to 10.2.0.3 - Release: 10.2 to 10.2 Information in this document applies to any platform. Goal This article is explains the new optimizer hint "OPT_PARAM" introduced in 10g R2. Solution "OPT_PARAM" is a new optimizer hint introduced in 10g Release 2. This hint behaves the same way as setting a parameter (e.g, using alter session) except that the effect is for the statement only. The hint only works for optimizer parameters. Global parameters such as optimizer_features_enable are not covered but optimizer_features_enable specifically has its own hint: /*+ optimizer_features_enable('9.2.0') */ @For an INTERNAL list of usable parameters see: Note:986618.1 Parameters useable by OPT_PARAM hint Hint Syntax The syntax is: /*+ opt_param( [,] ) */ parameter_name is the name of a parameter parameter_value is its value. If the parameter contains a numeric value, the parameter value has to be specified without quotes. The hint can be used to set multiple parameters by repeating the hint, i.e. /*+ opt_param( [,] ) opt_param( [,] ) */ Basic Usage Example For example, the following hint sets <> to 'false' when added to a statement: /*+ opt_param('hash_join_enabled','false') */ e.g.: Without the hint:
    
    SQL> select empno from emp e, dept d where e.ename=d.dname
    
    ---------------------------------------------------------------------------
    | Id  | Operation          | Name | Rows  | Bytes | Cost (%CPU)| Time     |
    ---------------------------------------------------------------------------
    |   0 | SELECT STATEMENT   |      |     8 |   160 |     7  (15)| 00:00:01 |
    |*  1 |  HASH JOIN         |      |     8 |   160 |     7  (15)| 00:00:01 |
    |   2 |   TABLE ACCESS FULL| DEPT |     4 |    40 |     3   (0)| 00:00:01 |
    |   3 |   TABLE ACCESS FULL| EMP  |    28 |   280 |     3   (0)| 00:00:01 |
    ---------------------------------------------------------------------------
    
    With the hint the hash join is disabled choosing a different plan:
    
    SQL> select /*+ opt_param('hash_join_enabled','false') */ empno 
    from emp e, dept d where e.ename=d.dname;
    
    
    ----------------------------------------------------------------------------
    | Id  | Operation           | Name | Rows  | Bytes | Cost (%CPU)| Time     |
    ----------------------------------------------------------------------------
    |   0 | SELECT STATEMENT    |      |     8 |   160 |     8  (25)| 00:00:01 |
    |   1 |  MERGE JOIN         |      |     8 |   160 |     8  (25)| 00:00:01 |
    |   2 |   SORT JOIN         |      |     4 |    40 |     4  (25)| 00:00:01 |
    |   3 |    TABLE ACCESS FULL| DEPT |     4 |    40 |     3   (0)| 00:00:01 |
    |*  4 |   SORT JOIN         |      |    28 |   280 |     4  (25)| 00:00:01 |
    |   5 |    TABLE ACCESS FULL| EMP  |    28 |   280 |     3   (0)| 00:00:01 |
    ----------------------------------------------------------------------------
    
    
    
    Multiple Parameter Settings example
    The OPT_PARAM hint can be specified more than once Time to adjust more than one parameter at once as follows:
    
    
    /*+ OPT_PARAM('_always_semi_join' 'off')
          OPT_PARAM('_b_tree_bitmap_plans' 'false')
          OPT_PARAM('query_rewrite_enabled' 'false')
          OPT_PARAM('_new_initial_join_orders' 'false')
          OPT_PARAM('optimizer_dynamic_sampling' 1)
          OPT_PARAM('optimizer_index_cost_adj' 1) */
    
    
  • 相关阅读:
    第六章实验报告
    第三次实验报告
    循环结构课后反思
    分支结构试验
    第七组509寝室课后习题4.34
    c语言实验报告
    第九章 结构体与共用体
    第八章实验报告(指针)
    第7章 数组实验报告
    函数与宏定义实验报告(2)
  • 原文地址:https://www.cnblogs.com/macleanoracle/p/2967369.html
Copyright © 2020-2023  润新知