чому неможливо отримати доступ до даних безпосередньо з таблиці, що відкидає B-дерево? (швидше за все, скануючи таблицю за рядком), чи не буде це взагалі більше, ніж недоступні дані?
Щоб відповісти на ваше запитання, основи індексації стають більш зручними - індекс складається з набору сторінок (вузлів індексу), які організовані в структурі дерева B. Ця структура має ієрархічний характер, з кореневим вузлом вгорі ієрархії та листковими вузлами внизу. Детальніше дивіться тут .
Крім того, як описано багатьма людьми, Clustered Indexes == Оригінальні таблиці, які фізично впорядковані одним або декількома клавішами або стовпцями. Отже, коли кластерний індекс відключений, до його рядків даних не можна отримати доступ. Ви не зможете вставити будь-які дані (для Індексу, який не кластеризується, Вставка буде успішною, але це не повністю пов’язано з цією публікацією, - як тут йдеться про індекс кластера), або жодна операція реорганізації не працюватиме.
Нижче докладно пояснимо:
ми будемо використовувати базу даних Adventureworks, щоб побачити ефект відключення індексу CLUSTERED .
Тепер перевірте кількість рядків у таблиці:
Тепер вимкніть індекс кластера
Тепер виберіть кількість таблиць із таблиці. Цього разу вона вийде з помилкою нижче:
Навіть операція по реорганізації не працює !!
Тепер відновіть індекс кластера, і він повинен працювати добре.
Виберіть таблицю, щоб побачити, чи можемо ми отримати доступ до даних
Отже, підсумок полягає в тому, що якщо ми відключимо індекс кластеру, то Дані в таблиці все ще існують, але вони не будуть доступні ні для чого, крім операцій Drop або REBUILD. Усі пов’язані некластеризовані індекси та представлення будуть недоступними, а зовнішні ключі, на які посилається таблиця, будуть відключені, і там буде проведено помилку для всіх запитів, на які посилається таблиця.
Примітка. Немає можливості ЗАКРИТИ індекс. Ви повинні її ВИПУСКАТИ.