ITPub博客

首页 > Linux操作系统 > Linux操作系统 > hint2

hint2

原创 Linux操作系统 作者:homeworld80 时间:2012-05-18 11:13:54 0 删除 编辑
5、 push_subq
这个hint的作用是将nonmerged子查询的执行顺序提前(一般来说,nonmerged子查询的执行顺序比较靠后)。且看下面两个语句执行计划的差别:
由于子查询返回的结果集非常小,所以先和test1进行连接更合理。
6、 merge/no_merge
这两个hint和另外两个hint push_pred/no_ push_pred应用场景很接近,都是用来控制和view(包括视图和子查询)的连接行为。见下面两个语句的执行计划:
前一个先生成子查询结果集,再和t1进行关联,后一个则直接进行关联,也就是连接的时机有所不同。
7、 push_pred/no_ push_pred
push_pred是把连接谓词push到view里,见下面语句的执行计划:
猜测:push_pred会导致表连接一定是走nested loop的。
8、 use_concat/ no_expand
这两个hint比较容易理解,use_concat就是将含有or操作符的查询转换成多块进行查询,然后做个concatenation。no_expand则与use_concat相对。
9、 merge_aj/hash_aj/nl_aj/merge_sj /hash_sj/ nl_sj
这几个是undocumented hint,其中后缀aj表示anti join,主要用于not exists和not in;后缀sj表示semi join,主要用于exists和in。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8367589/viewspace-730121/,如需转载,请注明出处,否则将追究法律责任。

上一篇: hint
下一篇: 字符集
请登录后发表评论 登录
全部评论

注册时间:2008-07-24

  • 博文量
    28
  • 访问量
    36109