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ż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:
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