2009-03-10 6 views
3

SQL Server'daki farklı birleştirme yöntemlerini, yani hash-join, birleştirme-birleştirmeyi ve dizin-birleştirmeyi karşılaştırmam gereken bir ödev üzerinde çalışıyorum.MS SQL Server'ı dizin birleştirmesi gerçekleştirmek için nasıl zorlayabilirim?

SQL Server'ın bir dizin katılımı gerçekleştirmesini sağlamakta güçlük çekiyorum. Herkes bana bir dizin-birleştirme (birleştirme ipucu veya benzeri kullanarak) kullanmak için nasıl zorlayabileceğimi veya sadece SQL Server'ın dizin ekleme yöntemini kullandığı bir birleştirmeyle basit bir sorgu sağladığını gösterebilir mi?

+0

Bu nasıl soru 5 dakika içinde google göstermek vermedi (o SQL Server için ilişki motoru tasarlanmış takımın biri)? Vay. – Sam

cevap

0

Dizin ipucunu doğrudan seçebilirsiniz, ancak aynı sözdiziminin birleşim için uygun olduğundan emin değilim.

SELECT blah FROM table WITH (INDEX (index_name)) 

olmayan bir ansi içinde kullanabiliriz

SELECT blah FROM TABLE1, TABLE2 
WHERE TABLE2.ForiegnKeyID = TABLE1.ID 
WITH (INDEX (index_name)) 

bir indeks ipucu ile katıl katılmak (?):

SELECT 
    ticket.ticket_id 
FROM 
    purchased_tickets 
JOIN ticket WITH (INDEX (ticket_ix3)) 
    ON ticket.original_ticket_id = purchased_tickets.ticket_id 
     AND ticket.paid_for = 1 
     AND ticket.punched = 0 
WHERE purchased_tickets.seller_id = @current_user 
OPTION (KEEPFIXED PLAN);