Di SQL Server Anda bisa menentukan petunjuk bergabung:
- HASH BERGABUNG
- MERGE BERGABUNG
- LOOP BERGABUNG
Apa definisi dari ketiga gabungan itu, dan kapan masing-masing harus digunakan?
Di SQL Server Anda bisa menentukan petunjuk bergabung:
Apa definisi dari ketiga gabungan itu, dan kapan masing-masing harus digunakan?
Jawaban:
Dari MSDN, dalam topik Konsep Tuning Kueri Tingkat Lanjut :
SQL Server menggunakan tiga jenis operasi gabungan:
Loop bersarang bergabung
Gabung bergabung
Hash bergabung
Jika satu input gabungan kecil (kurang dari 10 baris) dan input gabungan lainnya cukup besar dan diindeks pada kolom gabungannya, gabungan indeks bersarang loop adalah operasi gabungan tercepat karena mereka membutuhkan paling sedikit I / O dan perbandingan paling sedikit. Untuk informasi lebih lanjut tentang loop bersarang, lihat Memahami Nested Loops Bergabung.
Jika dua input gabungan tidak kecil tetapi diurutkan pada kolom gabungannya (misalnya, jika diperoleh dengan memindai indeks yang diurutkan), gabungan gabungan adalah operasi gabungan tercepat. Jika kedua input gabungan besar dan dua input berukuran sama, gabungan gabungan dengan penyortiran sebelumnya dan gabungan hash menawarkan kinerja yang sama. Namun, operasi hash join seringkali jauh lebih cepat jika dua ukuran input berbeda secara signifikan satu sama lain. Untuk informasi lebih lanjut, lihat Memahami Gabung Bergabung.
Hash joins dapat secara efisien memproses input besar, tidak disortir, tidak diindeks.
Tapi saya percaya bahwa Anda harus mulai dengan topik yang lebih mendasar: Query Tuning dan terakhir pergi menggunakan petunjuk permintaan.