почему невозможно получить доступ к данным непосредственно из таблицы, отбрасывающей B-дерево? (скорее всего, сканируя таблицу строка за строкой), не будет ли это более уместным, чем недоступные данные вообще?
Чтобы ответить на ваш вопрос, удобнее использовать основы индексации - индекс состоит из набора страниц (узлов индекса), которые организованы в виде структуры B-дерева. Эта структура имеет иерархическую природу, с корневым узлом вверху иерархии и листовыми узлами внизу. Для более подробной информации обратитесь сюда .
Кроме того, как многие люди описывали, Clustered Indexes == Исходные таблицы, которые физически упорядочены с одним или несколькими ключами или столбцами. Таким образом, когда кластерный индекс отключен, к его строкам данных нельзя получить доступ. Вы не сможете вставить какие-либо данные (для некластеризованного индекса вставка будет выполнена успешно - но это не совсем относится к этому сообщению - так как здесь речь идет о кластерном индексе), либо операция реорганизации не будет работать.
Ниже подробно объясню вам:
мы будем использовать базу данных Adventureworks, чтобы увидеть эффект отключения индекса CLUSTERED .
Теперь проверьте количество строк в таблице:
Теперь отключите кластерный индекс
Теперь выберите количество строк из таблицы. На этот раз произойдет ошибка с сообщением ниже:
Даже операция реорганизации не работает !!
Теперь перестройте Clustered Index, и он должен работать нормально.
Выберите таблицу, чтобы увидеть, можем ли мы получить доступ к данным
Итак, суть в том, что если мы отключим кластеризованный индекс, то данные в таблице все еще существуют, но не будут доступны ни для чего, кроме операций удаления или REBUILD. Все связанные некластеризованные индексы и представления будут недоступны, так как внешние ключи, ссылающиеся на таблицу, будут отключены, и там будет указана команда FAILURE для всех запросов, ссылающихся на таблицу.
Примечание. Нет возможности включить индекс. Вы должны перестроить его.