В чем разница между сканированием индекса, сканированием таблицы и поиском по индексу?

#sql-server

#sql-server

Вопрос:

Кто-нибудь может кратко объяснить, в чем разница между этими тремя сканированием индекса, сканированием таблицы и поиском по индексу?

Ответ №1:

Сканирование индекса

Сканирование индекса сканирует каждую запись в индексе. Table Scan таблица обрабатывается строка за строкой от начала до конца. Если индекс является кластеризованным индексом, то сканирование индекса на самом деле является сканированием таблицы. Поскольку сканирование затрагивает каждую строку в таблице, независимо от того, соответствует она требованиям или нет, стоимость пропорциональна общему количеству строк в таблице. Следовательно, сканирование является эффективной стратегией, если таблица небольшая.

Поиск по индексу

Поскольку поиск касается только соответствующих строк и страниц, содержащих эти соответствующие строки, стоимость пропорциональна количеству соответствующих строк и страниц, а не общему количеству строк в таблице.