Кластерный и некластеризованный индекс

Интервьюер спросил меня, в чем разница между кластеризованным и некластеризованным индексом, а затем перешел в него и задал еще один вопрос: когда таблица имеет кластеризованный индекс и некластеризованный индекс, указывает ли некластеризованный индекс на строку данных в таблице? Я сказал «да» и сразу подумал, что это неправильно. Указывает ли он на строку данных, упорядоченную по кластеризованному индексу, или на исходные строки данных? Может кто-нибудь пролить свет на это, пожалуйста.


person Learner    schedule 07.12.2015    source источник
comment
msdn.microsoft.com/en-us/library/ms190457.aspx   -  person Richard Brightwell    schedule 07.12.2015
comment
@MitchWheat Я не смог найти его сразу, поэтому подумал о том, чтобы поделиться им на SO, потому что это может быть полезно и для кого-то другого ... будьте позитивны и распространяйте любовь .. :-)   -  person Learner    schedule 07.12.2015


Ответы (2)


Некластеризованный индекс не сортирует физические данные внутри таблицы. Фактически, некластеризованный индекс хранится в одном месте, а данные таблицы хранятся в другом месте. Это похоже на учебник, где содержание книги находится в одном месте, а указатель - в другом. Это позволяет использовать более одного некластеризованного индекса для каждой таблицы. Здесь важно отметить, что внутри таблицы данные будут отсортированы по кластеризованному индексу. Однако внутри некластеризованного индекса данные хранятся в указанном порядке. Индекс содержит значения столбцов, по которым создается индекс, и адрес записи, которой принадлежит значение столбца.

Когда выполняется запрос к столбцу, в котором создается некластеризованный индекс, база данных сначала переходит к некластеризованному индексу и ищет адрес соответствующей строки в таблице. Затем он перейдет к адресу этой строки и получит другие значения столбца. Из-за этого дополнительного шага некластеризованные индексы работают медленнее, чем кластеризованные.

person Santhoopa Jayawardhana    schedule 20.05.2020

Фактическая таблица хранится в порядке столбца кластеризованного индекса. Столбец ключа некластеризованного индекса хранится в другой таблице, кроме самой таблицы.

Ниже есть хорошая статья о кластеризованном и некластеризованном индексе:
она даст вам хорошее представление об индексировании:
http://www.sqlservercentral.com/blogs/practicalsqldba/2013/03/14/sql-server-part-4-объясняющий-некластеризованный-индекс-структура-/

Как некластеризованный индекс работает в SQL Server

person Biswabid    schedule 07.12.2015