广播联接

如今,常规联接在单个集群节点上执行。 广播联接是一种联接执行策略,该策略将联接分布在各群集节点上。 在联接的左侧较小(最多几十 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