开发者社区> 问答> 正文

LM计算引擎 Hint优化查询是什么?


分析型数据库在v2.0(0.9.45)后提供了两种hint用于优化查询。相关hint的使用建议咨询专业人员。
no-index
用于指定某列不使用索引。一般用于在多个where过滤条件中,存在1-2个条件筛选率非常低,导致索引装载时间消耗很长,反而不如不用索引时。
示例:<PRE prettyprinted? linenums>

  1. select a1, a2, count(distinct a3) rs from  a join  b on a.a1 = b.a1 and b.a4 in ('110', '120') and a.aa3 = 1003 and b.aa2 <= 201503 group by a1, a2;

该sql中,aa2筛选率很差,所以应该增加no-index hint<PRE prettyprinted? linenums>
  1. /*+no-index=[b.aa2]*/
  2. select a1, a2, count(distinct a3) rs from  a join  b on a.a1 = b.a1 and b.a4 in ('110', '120') and a.aa3 = 1003 and b.aa2 <= 201503 group by a1, a2;

nocache
不常用,用于某些列在查询中不适合进入缓存时指定其不进入缓存。
用法:<PRE prettyprinted? linenums>
  1. /*+no-cache=[colname]*/
  2. select ...

展开
收起
nicenelly 2017-10-26 15:24:33 2275 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
MaxCompute SQL计算成本调优以及优化方法 立即下载
PolarDB NL2SQL: 帮助您写出准确、优化的SQL 立即下载
时序数据库TSDB新功能 - 如何用SQL进行时序查询 立即下载