Hint 使用心得

--Hints 使用心得
1.我们可以用hints来实现:
  1) 使用的优化器的类型
  2) 基于代价的优化器的优化目标,是all_rows还是first_rows。
  3) 表的访问路径,是全表扫描,还是索引扫描,还是直接利用rowid。
  4) 表之间的连接类型
  5) 表之间的连接顺序
  6) 语句的并行程度
 
2、HINT可以基于以下规则产生作用
  表连接的顺序、表连接的方法、访问路径、并行度

3、HINT应用范围
  1) DML语句
  2) 查询语句
 
/*+ ALL_ROWS */ 表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化;
/*+ FIRST_ROWS */ 表明对语句块选择基于开销的优化方法,并获得最佳响应时间,使资源消耗最小化.
/*+ CHOOSE */ 表明如果数据字典中有访问表的统计信息,将基于开销的优化方法,并获得最佳的吞吐量;
  表明如果数据字典中没有访问表的统计信息,将基于规则开销的优化方法;
/*+ RULE */  表明对语句块选择基于规则的优化方法.
/*+ FULL(table_name) */ 表明对表选择全局扫描的方法.
/*

如果表有别名,那么在hints中只能使用别名;

/*+ leading(table_name) */  该表作为链接次序中的首表;
/*+ index(table_name  index_name) */ 走该表的相应索引;
/*+ append */ 直接将记录插入到表的最后,提高插入速度; 例如 inset  /*+ append */ INTO test_table
/*+ rowid(table_name) */ 提示表明根据表的rowid进行访问

你可能感兴趣的:(oracle,oracle,oracle,sql,sql,sql,数据库)