Ich habe die folgende Abfrage in SQL Server 2005:Hash-Join auf Volltextabfrage Zeigend - SQL Server 2005
SELECT
PRODUCT_ID
FROM
PRODUCTS P
WHERE
SUPPLIER_ORGANIZATION_ID = 13225
AND ACTIVE_FLAG = 'Y'
AND CONTAINS(*, 'FORMSOF(Inflectional, "%clip%") ')
Interessant ist, dass diese mit einem Hash Match erzeugt während, wenn ich einen anderen SUPPLIER_ORGANIZATION_ID
verwenden (älterer Lieferant), wird ein Merge-Join verwendet. Offensichtlich ist der Hash viel langsamer als der Merge-Join. Was ich nicht verstehe ist, warum es einen Unterschied gibt und was benötigt wird, um es schneller laufen zu lassen?
FYI, es gibt etwa 5 Millionen Datensätze in der Tabelle PRODUKTE. Wenn die ID der Lieferantenorganisation ausgewählt wurde (13225), gibt es etwa 25000 Produkte für diesen Lieferanten.
Vielen Dank im Voraus.
SQL Server - welche Version? Fügen Sie diese Information hinzu (als Tag und vielleicht in der Frage selbst). – Tomalak
SQL Server 2005. Änderungen vorgenommen. –
Danke. +1 für die Frage. Ich kann es nicht sicher beantworten, aber haben Sie einen DBCC DBREINDEX und eine UPDATE STATISTICS auf dem Tisch versucht? – Tomalak