SQL 2000
Таблица NED имеет внешний ключ к таблице SIGN NED.RowID к SIGN.RowID
Таблица SIGN имеет внешний ключ к таблице SIGN.SignID NED к NED.SignID
RowId и SignID являются кластерными первичными ключами, которые являются идентификаторами GUID (не мой выбор)
ИНЕКЯ является:Почему происходит сканирование моего кластерного индекса?
FROM
[SIGN] A
INNER JOIN NED N ON A.SIGNID = N.SIGNID
INNER JOIN Wizard S ON A.WizardID = S.WizardID
INNER JOIN [Level] SL ON N.LevelID = SL.LevelID
LEFT JOIN Driver DSL ON SL.LevelID = DSL.LevelID
AND DSL.fsDeptID = @fsDeptID
INNER JOIN [Character] ET ON S.CharacterID = ET.CharacterID
INNER JOIN Town DS ON A.TownID = DS.TownID
WHERE
(A.DeptID = @DeptID OR
S.DeptID = @DeptID
AND
A.[EndTime] > @StartDateTime AND A.[StartTime] < @EndDateTime
AND
A.NEDStatusID = 2
Почему там INDEX SCAN на столе SIGN для этого запроса? Что может вызвать сканирование индекса в кластерном индексе? Спасибо
Я должен спросить, что вы ожидаете от этого запроса или, скорее, почему вы считаете, что сканирование индекса является проблемой в этом случае? – Welbog
Вы исходите из другой СУБД и ожидаете увидеть что-то вроде хеш-соединения или кластера? Если да, то вам следует знать, что в SQL Server кластеризованный индекс - это просто индекс дерева, где листовые узлы являются страницами данных. Если вы уже это знали, проигнорируйте этот комментарий. – kdgregory