2009-03-10 10 views
3

Je travaille sur une tâche où je suis supposé comparer différentes méthodes de jointure dans SQL Server, à savoir hash-join, fusion-join et index-join.Comment forcer MS SQL Server à effectuer une jointure d'index?

J'ai des difficultés à obtenir SQL Server pour effectuer une jointure d'index. Quelqu'un peut-il me montrer comment je peux le forcer à utiliser une jointure d'index (en utilisant un indice de jointure ou similaire), ou simplement fournir une requête simple avec une jointure sur laquelle SQL Server utilise la méthode de jointure d'index?

+0

Comment cette question apparaissent sur Google en 5 minutes? Sensationnel. – Sam

Répondre

0

Vous pouvez avoir un indice sur une sélection directe, mais je ne suis pas sûr que la même syntaxe soit disponible pour une jointure.

SELECT blah FROM table WITH (INDEX (index_name)) 

vous pouvez utiliser cela dans un non-ansi rejoindre

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

avec un soupçon d'inscription d'index (?):

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); 
Questions connexes