首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用Impala hint加速SQL查询

此时,我们就可以使用hint来改变SQL的join方式,impala的hint使用非常简单,如下所示: SELECT STRAIGHT_JOIN select_list FROM join_left_hand_table...的相应部分加入了STRAIGHT_JOIN和[shuffle]之后,SQL的执行计划就发生了改变。...请注意,有两个地方需要加上hint关键字,select后面加上STRAIGHT_JOIN;join后面加上[shuffle]或者/* +shuffle */。...外层的hint对于内层的join子语句是不起作用的。如果select后面跟distinct之类的关键字,STRAIGHT_JOIN需要跟在关键字后面。...除了可以改变join的方式之外,impala hint还支持一些其他的功能,这里就不再过多描述,感兴趣的同学可以参考官方文档:https://www.cloudera.com/documentation

1.5K20

SQL执行计划】优化器相关Hint

ALL_ROWS 说明: ALL_ROWS是针对整个目标SQLHint,它的含义是让优化器启用CBO,而且在得到目标SQL的执行计划时会选择那些吞吐量最佳的执行路径。...如果在目标SQL中除了ALL_ROWS之外还使用了其他与执行路径、表连接相关的Hint,则优化器会优先考虑ALL_ROWS。...RULE 说明:RULE是针对整个SQLHint,它表示对目标SQL启用RBO。...忽略情况:因为很多执行路径RBO根本就不支持,所以即使在目标SQL中使用了RULE Hint,如果出现了如下情况(包括但不限于),RULE Hint依然会被Oracle忽略。...目标SQL除RULE之外还联合使用了其他Hint(比如DRIVING_SITE)。 目标SQL使用了并行执行。 目标SQL所涉及的对象有IOT。 目标SQL所涉及的对象有分区表。

1K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    使用hint来调优sql语句(72天)

    最近生产发现有一个sql语句运行耗时达5000多秒。 抓出来sql_id一看,sql倒不是一个很长的语句。结构也很简单。如下。...而且对应的主键在查询条件中也没有,这也是这个sql执行慢的主要原因。 表 REFUND_REQUEST 是一个应用表,里面的数据就几百条。 明白了大概的情况之后。 首先从视图下手。...但是sql语句还是会不断的去做无用功。查了半天,结果返回了一个Null。 找到了基本的方向,如果查询条件中没有匹配的值,至少可以不用再从3亿多条记录的表里去全表扫描了。...SQL> select distinct a.DATA_FIELD_10 l9_company_code from DETAILED_DATA...=1 但是已加入条件financial_activity就开始扫描大表,看来只能使用Hint来强制指定表的访问顺序了。当然了使用hint也是玩不得以而为之。不建议一开始调就考虑hint.

    61060

    SQL优化:一篇文章说清楚Oracle Hint的正确使用姿势

    Hint就是Oracle提供的一种机制,用来告诉优化器按照告诉它的方式生成执行计划。 2、不要过分依赖Hint 当遇到SQL执行计划不好的情况,应优先考虑统计信息等问题,而不是直接加Hint了事。...只有在最后仍然不能SQL按优化的执行计划执行时,才考虑Hint。...毕竟使用Hint,需要应用系统修改代码,Hint只能解决一条SQL的问题,并且由于数据分布的变化或其他原因(如索引更名)等,会导致SQL再次出现性能问题。...4、Hint与注释关系 提示是Oracle为了不破坏和其他数据库引擎之间对SQL语句的兼容性而提供的一种扩展功能。Oracle决定把提示作为一种特殊的注释来添加。...3、提示数据字典 Oracle在11g的版本中提供了一个数据字典—V$SQL_HINT。通过这个数据字典可以看到提示的出现版本、概要数据版本、SQL特性以及相反提示等。

    7.6K340
    领券