Petunjuk (Transact-SQL) - Gabung
Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance
Petunjuk gabungan menentukan bahwa pengoptimal kueri memberlakukan strategi gabungan antara dua tabel di SQL Server. Untuk informasi umum tentang gabungan dan sintaks gabungan, lihat FROM (Transact-SQL).
Perhatian
Karena pengoptimal kueri SQL Server biasanya memilih rencana eksekusi terbaik untuk kueri, kami menyarankan agar petunjuk hanya digunakan sebagai upaya terakhir oleh pengembang dan administrator database yang berpengalaman.
Berlaku untuk
Sintaksis
<join_hint> ::=
{ LOOP | HASH | MERGE | REMOTE }
Catatan
Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 (12.x) dan versi yang lebih lama, lihat Dokumentasi versi sebelumnya.
Argumen
LOOP | HASH | MENGGABUNGKAN
Menentukan bahwa gabungan dalam kueri harus menggunakan perulangan, hashing, atau penggabungan. Menggunakan LOOP |HASH | MERGE JOIN memberlakukan gabungan tertentu di antara dua tabel. LOOP tidak dapat ditentukan bersama dengan RIGHT atau FULL sebagai jenis gabungan. Untuk informasi selengkapnya, lihat Gabungan.
REMOTE
Menentukan bahwa operasi gabungan dilakukan di situs tabel kanan. Ini berguna ketika tabel kiri adalah tabel lokal dan tabel kanan adalah tabel jarak jauh. REMOTE harus digunakan hanya ketika tabel kiri memiliki lebih sedikit baris daripada tabel kanan.
Jika tabel kanan bersifat lokal, gabungan dilakukan secara lokal. Jika kedua tabel bersifat jarak jauh tetapi dari sumber data yang berbeda, REMOTE menyebabkan gabungan dilakukan di situs tabel yang tepat. Jika kedua tabel adalah tabel jarak jauh dari sumber data yang sama, REMOTE tidak diperlukan.
REMOTE tidak dapat digunakan ketika salah satu nilai yang dibandingkan dalam predikat gabungan dilemparkan ke kolase yang berbeda menggunakan klausa COLLATE.
REMOTE hanya dapat digunakan untuk operasi INNER JOIN.
Keterangan
Petunjuk gabungan ditentukan dalam klausa FROM kueri. Gabungkan petunjuk memberlakukan strategi gabungan antara dua tabel. Jika petunjuk gabungan ditentukan untuk dua tabel apa pun, pengoptimal kueri secara otomatis memberlakukan urutan gabungan untuk semua tabel yang bergabung dalam kueri, berdasarkan posisi kata kunci ON. Ketika CROSS JOIN digunakan tanpa klausul ON, tanda kurung dapat digunakan untuk menunjukkan urutan gabungan.
Contoh
J. Menggunakan HASH
Contoh berikut menentukan bahwa JOIN
operasi dalam kueri dilakukan oleh HASH
gabungan. Contohnya menggunakan database AdventureWorks2022.
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. Menggunakan LOOP
Contoh berikut menentukan bahwa JOIN
operasi dalam kueri dilakukan oleh LOOP
gabungan. Contohnya menggunakan database AdventureWorks2022.
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. Menggunakan MERGE
Contoh berikut menentukan bahwa JOIN
operasi dalam kueri dilakukan oleh MERGE
gabungan. Contohnya menggunakan database AdventureWorks2022.
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
Lihat Juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk