Jonction de diffusion

Aujourd’hui, les jointures régulières sont exécutées sur un seul nœud de cluster. La jointure de diffusion est une stratégie d’exécution de jointure qui distribue la jointure sur les nœuds de cluster. Cette stratégie est utile lorsque le côté gauche de la jointure est petit (jusqu’à plusieurs dizaines de Mo). Dans ce cas, une jointure de diffusion est plus performante qu’une jointure normale.

Utilisez l’opérateur de recherche si le côté droit est plus petit que le côté gauche. L’opérateur de recherche s’exécute dans la stratégie de diffusion par défaut lorsque le côté droit est plus petit que le côté gauche.

Notes

Si le côté gauche de la jointure est supérieur à plusieurs dizaines de Mo, la requête échoue.

Vous pouvez exécuter la requête suivante pour estimer la taille du côté gauche, en octets :

leftSide
| summarize sum(estimate_data_size(*))

Si le côté gauche de la jointure est un petit jeu de données, vous pouvez exécuter la jointure en mode de diffusion à l’aide de la syntaxe suivante (hint.strategy = broadcast) :

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

L’amélioration des performances est plus notable dans les scénarios où la jointure est suivie d’autres opérateurs tels que summarize. Consultez la requête suivante par exemple :

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