Junção de transmissão

Hoje, as junções regulares são executadas em um único nó de cluster. A junção de difusão é uma estratégia de execução de junção que distribui a junção por nós de cluster. Essa estratégia é útil quando o lado esquerdo da junção é pequeno (até várias dezenas de MBs). Nesse caso, uma junção de difusão é mais eficaz do que uma junção regular.

Use o operador de pesquisa se o lado direito for menor que o lado esquerdo. O operador de pesquisa é executado na estratégia de difusão por padrão quando o lado direito é menor que o esquerdo.

Observação

Se o lado esquerdo da junção for maior que várias dezenas de MBs, a consulta falhará.

Você pode executar a seguinte consulta para estimar o tamanho do lado esquerdo, em bytes:

leftSide
| summarize sum(estimate_data_size(*))

Se o lado esquerdo da junção for um pequeno conjunto de dados, você poderá executar a junção no modo de difusão usando a seguinte sintaxe (hint.strategy = broadcast):

leftSide 
| join hint.strategy = broadcast (factTable) on key

A melhoria de desempenho é mais perceptível em cenários em que a junção é seguida por outros operadores, como summarize. Consulte a seguinte consulta, por exemplo:

leftSide 
| join hint.strategy = broadcast (factTable) on Key
| summarize dcount(Messages) by Timestamp, Key