什么是Hint,Hint实际上是一种特殊的注释,它一种固定的格式和位置出现SQL语句的文本中,它可以影响优化器对执行计划的选择,但是这种影响并不是强制的,优化器在某些情况下可能会忽略SQL中的Hint,即使这个Hint在语法和语义都是有效的。
Oracle里并不是所有的Hint都是针对优化器的
针对优化器的Hint而言
Hint可以影响目标SQL能否被改写
Hint可以影响优化器对执行路径的选择
Hint可以影响优化器对表连接方法的选择
Hint可以影响优化器对执行计划的执行步骤返回结果集的判断。
如果目标SQL中启用了Hint就启用了CBO,Oracle就会以CBO来解析含Hint的SQL语句。不过这里有两个例外RULE Hint,DRIVING_SITE Hint,它们可以在RBO下启用,不会自动启动CBO。
/*+ full(table_name) */ --全表扫描