Sugerencias (Transact-SQL): combinación

Se aplica a: síSQL Server (todas las versiones admitidas) SíAzure SQL Database

Las sugerencias de combinación especifican que el optimizador de consultas aplique una estrategia de combinación entre dos tablas en SQL Server. Para obtener información general sobre las combinaciones y la sintaxis de combinación, vea FROM (Transact-SQL).

Precaución

Como el optimizador de consultas de SQL Server suele seleccionar el mejor plan de ejecución de una consulta, se recomienda que únicamente los administradores de bases de datos y desarrolladores experimentados utilicen las sugerencias como último recurso.

Se aplica a:

DELETE

SELECT

UPDATE

Icono de vínculo de tema Convenciones de sintaxis de Transact-SQL

Sintaxis

<join_hint> ::=   
     { LOOP | HASH | MERGE | REMOTE }  

Nota

Para ver la sintaxis de Transact-SQL para SQL Server 2014 y versiones anteriores, consulte Versiones anteriores de la documentación.

Argumentos

LOOP | HASH | MERGE

Especifica que la combinación de la consulta utiliza bucles, hash o mezclas. El uso de LOOP | HASH | MERGE JOIN aplica una combinación particular entre dos tablas. LOOP no se puede especificar junto con RIGHT o FULL como un tipo de combinación. Para más información, vea Combinaciones.

REMOTE

Especifica que la operación de combinación se realice en el sitio de la tabla derecha. Esto es útil cuando la tabla izquierda es una tabla local y la tabla derecha es una tabla remota. REMOTE solo se debe utilizar cuando la tabla izquierda tenga menos filas que la tabla derecha.

Si la tabla derecha es local, la combinación se realiza localmente. Si ambas tablas son remotas pero de orígenes de datos diferentes, REMOTE hace que la combinación se realice en el sitio de la tabla derecha. Si ambas tablas son tablas remotas pero del mismo origen de datos, REMOTE no es necesario.

REMOTE no se puede utilizar cuando uno de los valores que se va a comparar en el predicado de combinación se convierte a una intercalación distinta mediante la cláusula COLLATE.

REMOTE solo puede utilizarse en operaciones INNER JOIN.

Observaciones

Las sugerencias de combinación se especifican en la cláusula FROM de una consulta. Las sugerencias de combinación exigen una estrategia de combinación entre dos tablas. Si se especifica una sugerencia de combinación entre dos tablas, el optimizador de consultas aplica automáticamente el orden de combinación de todas las tablas combinadas de la consulta, basándose en la posición de las palabras clave ON. Cuando se utiliza CROSS JOIN sin la cláusula ON, se pueden utilizar paréntesis para indicar el orden de combinación.

Ejemplos

A. Usar HASH

En el siguiente ejemplo se especifica que la operación JOIN de la consulta está realizada por una combinación HASH. En el ejemplo se usa la base de datos AdventureWorks2012.

SELECT p.Name, pr.ProductReviewID  
FROM Production.Product AS p  
LEFT OUTER HASH JOIN Production.ProductReview AS pr  
ON p.ProductID = pr.ProductID  
ORDER BY ProductReviewID DESC;  

B. Usar LOOP

En el siguiente ejemplo se especifica que la operación JOIN de la consulta está realizada por una combinación LOOP. En el ejemplo se usa la base de datos AdventureWorks2012.

DELETE FROM Sales.SalesPersonQuotaHistory   
FROM Sales.SalesPersonQuotaHistory AS spqh  
    INNER LOOP JOIN Sales.SalesPerson AS sp  
    ON spqh.SalesPersonID = sp.SalesPersonID  
WHERE sp.SalesYTD > 2500000.00;  
GO  

C. Usar MERGE

En el siguiente ejemplo se especifica que la operación JOIN de la consulta está realizada por una combinación MERGE. En el ejemplo se usa la base de datos AdventureWorks2012.

SELECT poh.PurchaseOrderID, poh.OrderDate, pod.ProductID, pod.DueDate, poh.VendorID   
FROM Purchasing.PurchaseOrderHeader AS poh  
INNER MERGE JOIN Purchasing.PurchaseOrderDetail AS pod   
    ON poh.PurchaseOrderID = pod.PurchaseOrderID;  
GO  

Consulte también

Sugerencias (Transact-SQL)