Локатор строк в некластеризованном индексе
Я читал о Non Clustered Index
что говорит "Nonclustered
Индекс содержит только значения из индексированных столбцов и локаторов строк, которые указывают на фактические строки данных, а не содержат сами строки данных. Это означает, что механизм запросов должен сделать дополнительный шаг, чтобы найти фактические данные ".
Запрос - мне не понятно с Row Locator
, Я предполагаю, что это не какой-либо Primary key
, В фоновом режиме происходит что-то, что связано с Row-Locator
уникально идентифицировать строку.
2 ответа
Если таблица имеет уникальный кластеризованный индекс, "локатор строк" состоит из столбцов кластеризованного индекса.
При использовании неуникального кластеризованного индекса"локатор строк" состоит из столбцов кластерного индекса, а также нового поля, добавляемого SQL Server, чтобы сделать ссылку уникальной. Новое поле невидимо для пользователей. Он называется "uniqueifier" и состоит из четырех байтов.
В таблице без кластеризованного индекса (или кучи) "указатель строки" является идентификатором RID или строки. МПОГ указывает на физическое местоположение. Он состоит из идентификатора файла (ID), номера страницы и номера строки на странице.
Одним из практических следствий "локатора строк" является то, что имеет смысл иметь небольшой первичный ключ для таблицы с большим количеством индексов:) Полная информация на этой странице MSDN.
@Nilish: "Ключ-кандидат" - это термин, используемый, когда вы решаете, какой столбец (столбцы) использовать для первичного ключа. И SQL ничего не знает об этом. Я не знаю, что означает "альтернативный ключ", за исключением того, что это еще один возможный набор столбцов, который можно использовать для первичного ключа.
Таким образом, в SQL нет понятия "приоритеты" для них. SQL не знает, какие столбцы однозначно идентифицируют запись, пока вы не сообщите ее, создав первичный ключ. Как только вы определите ключи, SQL использует их.
В таблице нет ни индексов (куча), ни неуникального кластеризованного индекса, либо уникального кластеризованного индекса. Других возможностей нет. (Первичный ключ - это ОБЫЧНО уникальный кластерный индекс.)