Оптимизация сканирования кластерного индекса в поиске кластерного индекса - PullRequest
0 голосов
/ 15 октября 2018

Есть сценарий, у меня есть таблица с 40 столбцами, и я должен выбрать все данные таблицы (включая все столбцы).Я создал кластеризованный индекс для таблицы и включил в нее Сканирование кластерного индекса при получении полного набора данных из таблицы.

Я знаю, что без какого-либо фильтра или ключа объединения SQL Server выберет Сканирование кластерного индекса вместо Поиск кластерного индекса .Но я хочу оптимизировать план выполнения, оптимизируя Сканирование кластерного индекса в Поиск кластерного индекса .Есть ли решение для достижения этой цели?Пожалуйста, поделитесь.

Ниже приведен скриншот плана выполнения: enter image description here

1 Ответ

0 голосов
/ 15 октября 2018

Что-то не совсем верно в вопросе / запросе, потому что то, что вы просите, будет работать плохо.Я подозреваю, что это происходит из-за неправильного понимания, что такое кластеризованный индекс.

Кластерный индекс - который, возможно, лучше сформулировать как кластеризованная таблица - это таблица данных, она не отделена от таблицы, она это таблица.Если порядок данных в таблице уже основан на ITEM ID, то сканирование является наиболее эффективным методом доступа для вашего запроса (особенно с учетом select *) - вы вообще не хотите искать в этом сценарии - и яне верьте, что это ваш сценарий из-за оператора сортировки.

Если кластеризованная таблица упорядочена по другому полю, то вам потребуется дополнительный некластеризованный индекс для обеспечения правильного порядка.Затем вы попытаетесь принудительно выполнить поиск плана, который представлял собой сканирование некластеризованного индекса, вложенный цикл, для поиска кластерного индекса.Это может быть достигнуто с помощью подсказок запроса, скорее всего, INNER LOOP JOIN вызовет поиск, но также существует FORCESEEK, который можно использовать.

Производительность в этом втором варианте никогда не выиграет - выв действительности, глядя на точку переломного момента (https://www.sqlskills.com/blogs/kimberly/the-tipping-point-query-answers/)

...