Что-то не совсем верно в вопросе / запросе, потому что то, что вы просите, будет работать плохо.Я подозреваю, что это происходит из-за неправильного понимания, что такое кластеризованный индекс.
Кластерный индекс - который, возможно, лучше сформулировать как кластеризованная таблица - это таблица данных, она не отделена от таблицы, она это таблица.Если порядок данных в таблице уже основан на ITEM ID, то сканирование является наиболее эффективным методом доступа для вашего запроса (особенно с учетом select *
) - вы вообще не хотите искать в этом сценарии - и яне верьте, что это ваш сценарий из-за оператора сортировки.
Если кластеризованная таблица упорядочена по другому полю, то вам потребуется дополнительный некластеризованный индекс для обеспечения правильного порядка.Затем вы попытаетесь принудительно выполнить поиск плана, который представлял собой сканирование некластеризованного индекса, вложенный цикл, для поиска кластерного индекса.Это может быть достигнуто с помощью подсказок запроса, скорее всего, INNER LOOP JOIN
вызовет поиск, но также существует FORCESEEK
, который можно использовать.
Производительность в этом втором варианте никогда не выиграет - выв действительности, глядя на точку переломного момента (https://www.sqlskills.com/blogs/kimberly/the-tipping-point-query-answers/)