USE_HASH( table [table]... ) */
这里面USE_HASH ( table [table]... )参数可以是一个表,也可以是多个表,怎么理解?
如果是USE_HASH(table1),那这个table1跟谁去hash join?
如果是USE_HASH(table1,table2,table3),又怎么理解?是不是table1和table2先hash_join,然后结果集再和table3进行hash_join。
use_hash(t1) 表示如果和t1连接可以使用hash_join就是用hash_join,至于什么和t1连接(表,结果集...)没有限定~
use_hash(t1 t2 t3 ... tn) 同样着这个意思,果和t1连接可以使用hash_join就是用hash_join,如果和t2连接可以使用hash_join就是用hash_join,....
如果和t2连接可以使用hash_join就是用hash_join
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15142212/viewspace-677586/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/15142212/viewspace-677586/
本文解析了SQL提示USE_HASH(table[table]...)的含义及其在不同场景下的应用方式。当指定单个表时,表示若该表参与连接操作,则优先考虑使用Hash Join算法;当指定多个表时,意味着任意两表间均可尝试采用Hash Join。文章还澄清了一些常见的理解误区。
397

被折叠的 条评论
为什么被折叠?



