Udostępnij za pośrednictwem


Dołącz wskazówek (Transact-SQL)

Wskazówki dotyczące sprzężenia określić, że optymalizator kwerendy wymusić strategii łączyć między dwoma tabelami.

Ważna informacjaWażne:

Ponieważ SQL Server optymalizator kwerendy zazwyczaj wybiera najlepszego planu wykonania kwerendy, zaleca się, wskazówek, łącznie z <join_hint>, będą używane tylko w ostateczności przez doświadczonych programistów i administratorów bazy danych.

Stosuje się do:

USUŃ

WYBIERZ

AKTUALIZACJA

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

Składnia

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

Argumenty

  • PĘTLA | MIESZANIE | KORESPONDENCJI SERYJNEJ
    Określa, że łączyć w kwerendzie należy użyć pętli, mieszania lub scalanie.Za pomocą pętli |MIESZANIE | Scalanie sprzężenia wymusza określonego łączyć między dwoma tabelami.Nie można określić pętli, wraz z prawej strony lub pełne jako typ łączyć .

  • ZDALNE
    Określa, że wykonywana jest operacja łączyć w witrynie prawej tabela.Jest to przydatne, gdy lewej tabela lokalnej tabela oraz prawej tabela jest tabela zdalna.ZDALNEGO należy używać tylko wtedy, gdy w lewej tabela zawiera mniej wierszy niż w prawej tabela.

    W przypadku lokalnych prawej tabela łączyć jest przeprowadzane lokalnie.Jeśli obie tabele są zdalnego, ale z różnych źródeł danych, zdalne powoduje łączyć należy przeprowadzić w witrynie prawej tabela.Jeśli obie tabele są tabelami zdalnego z tych samych danych źródło, zdalnego nie jest wymagany.

    Nie można użyć PILOTA, gdy jedna z wartości są porównywane w predykacie łączyć rzutować różnych sortowanie za pomocą klauzulaCOLLATE.

    ZDALNY służy tylko do operacji INNER JOIN.

Uwagi

Sprzężenia wskazówek, określony w klauzula FROM kwerendy.Wskazówki dotyczące sprzężenia wymusić strategii łączyć między dwoma tabelami.Wskazówka łączyć jest określony dla dwóch tabel, optymalizator kwerendy automatycznie wymusza kolejność łączyć dla wszystkich sprzężonych tabel w kwerendzie, na podstawie położenia na słowa kluczowe.SPRZĘŻENIA krzyżowe użyto bez klauzulaON nawiasów może służyć do wskazują kolejność łączyć .

Przykłady

A.Za pomocą skrótu

W następującym przykładzie określono, że JOIN operacji w kwerendzie jest wykonywana przez HASH łączyć.

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

B.Za pomocą pętli

W następującym przykładzie określono, że JOIN operacji w kwerendzie jest wykonywana przez LOOP łączyć.

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

C.Za pomocą korespondencji seryjnej

W następującym przykładzie określono, że JOIN operacji w kwerendzie jest wykonywana przez MERGE łączyć.

USE AdventureWorks2008R2;
GO
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