广播联接
如今,常规连接是在群集单节点上执行的。 广播联接是一种联接执行策略,该策略将联接分布在各群集节点上。 在联接的左侧较小(最多几十 MB)时,此策略很有用。 在这种情况下,广播联接比常规联接的性能更高。
如果右侧小于左侧,请使用 Lookup 运算符。 默认情况下,当右侧小于左侧时,Lookup 运算符会在广播策略中运行。
注意
如果联接的左侧大于几十 MB,则查询将失败。
可以运行以下查询来估计左侧的大小(以字节为单位):
leftSide
| summarize sum(estimate_data_size(*))
如果联接的左侧是一个小型数据集,可使用以下语法 (hint.strategy = broadcast) 在广播模式下运行联接:
leftSide
| join hint.strategy = broadcast (factTable) on key
在联接后跟其他运算符(如 summarize
)的情况下,性能改进更加明显。 有关示例,请参阅以下查询:
leftSide
| join hint.strategy = broadcast (factTable) on Key
| summarize dcount(Messages) by Timestamp, Key