2009-03-10 12 views
3

Ich arbeite an einer Aufgabe, wo ich verschiedene Join-Methoden in SQL Server vergleichen soll, nämlich Hash-Join, Merge-Join und Index-Join.Wie erzwinge ich MS SQL Server, eine Indexverbindung durchzuführen?

Ich habe Schwierigkeiten, SQL Server zum Ausführen eines Index-Join zu bekommen. Kann mir jemand zeigen, wie ich es zwingen kann, einen Index-Join zu benutzen (mit einem Join-Hinweis oder ähnlichem), oder einfach nur eine einfache Anfrage mit einem Join zu stellen, auf dem der SQL-Server die Index-Join-Methode verwendet?

+0

Wie diese Frage auf Google in 5 Minuten angezeigt hat? Beeindruckend. – Sam

Antwort

0

Sie können einen Index-Hinweis auf gerade auswählen, aber ich bin mir nicht sicher, dass die gleiche Syntax für eine Verknüpfung verfügbar ist.

SELECT blah FROM table WITH (INDEX (index_name)) 

Sie könnte dies in einem nicht-ansi verwenden beitreten

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

mit einem Indexhinweis Join (?):

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