Comprender las combinaciones de mezcla

La combinación de mezcla requiere que ambas entradas estén ordenadas en las columnas de mezcla, que se han definido mediante las cláusulas de igualdad (ON) del predicado de combinación. El optimizador de consultas normalmente recorre un índice, si existe uno en el conjunto de columnas apropiado, o bien coloca un operador de orden bajo la combinación de mezcla. En algunos casos, puede haber varias cláusulas de igualdad, pero las columnas de mezcla se toman sólo de algunas de las cláusulas de igualdad disponibles.

Dado que cada entrada está ordenada, el operador Merge Join obtendrá una fila de cada entrada y las comparará. Por ejemplo, para operaciones de combinaciones internas, se devuelven las filas si son iguales. Si no son iguales, se descarta la fila que tenga el valor menor y se obtiene otra fila de esa entrada. Este proceso se repite hasta que se han procesado todas las filas.

La operación de combinación de mezcla puede ser una operación normal o de varios a varios. Una combinación de mezcla de varios a varios utiliza una tabla temporal para almacenar las filas. Si hay valores duplicados de cada entrada, una de las entradas tendrá que retroceder al principio de los duplicados cuando se procesa cada duplicado de la otra entrada.

Si hay un predicado residual, todas las filas que cumplan el predicado de mezcla evaluarán el predicado residual y sólo se devolverán las filas que lo cumplan.

La combinación de mezcla es muy rápida, pero puede ser una opción costosa si se requieren operaciones de ordenación. Sin embargo, si el volumen de datos es grande y los datos deseados se pueden obtener con una ordenación previa de los índices existentes de árbol b, la combinación de mezcla es, a menudo, el algoritmo de combinación disponible más rápido.