Подтвердить что ты не робот

Что лучше: поиск по закладке/ключевому слову или сканирование индексов

Я знаю, что индекс искать лучше, чем индекс scan, но который предпочтительнее в планах объяснения SQL Server: поиск индекса или поиск ключа (закладка в SQL Server 2000)?

Скажите, пожалуйста, чтобы они не меняли имя для SQL Server 2008...

4b9b3361

Ответ 1

Индекс стремится каждый раз.

Взломы стоят дорого, поэтому это охватывает индексы, и особенно добавлено предложение INCLUDE, чтобы сделать их лучше.

Говоря, что если вы ожидаете ровно одну строку, например, поиск после поиска может быть лучше, чем попытка охватить запрос. Мы полагаемся на это, чтобы избежать еще одного индекса в определенных ситуациях.

Изменить: статья простого обсуждения: Использование индексов покрытия для улучшения производительности запросов

Изменить, август 2012

Поиск происходит в строке, поэтому они плохо масштабируются. В конце концов оптимизатор выберет кластерное сканирование индекса вместо поиска + поиска, потому что он более эффективен, чем многие поисковые запросы.

Ответ 2

Key lookup очень похож на кластеризованный поиск индекса (pre 2005 SP2 был назван "искать с поиском" ). Я думаю, единственное различие заключается в том, что Key Lookup может указывать дополнительный аргумент PRE-FETCH, инструктирующий механизм выполнения для предварительной выборки большего количества ключей в кластере (т.е. Поиск кластеризованного индекса, за которым следует сканирование).

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

Ответ 3

Этот вопрос SO указывает, что ключевые поиски - это то, чего следует избегать. Искажение индекса будет, безусловно, более эффективной.