Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по курсу ИСиТ.docx
Скачиваний:
6
Добавлен:
07.02.2024
Размер:
1.07 Mб
Скачать

Удаление индексов

При удалении некластеризованного индекса его определение удаляется из метаданных, а страницы данных сбалансированного дерева индекса удаляются из файлов базы данных. При удалении кластеризованного индекса определение индекса удаляется из метаданных, а строки данных, которые хранились на конечном уровне кластеризованного индекса, сохраняются в результирующей неупорядоченной таблице - куче. Все пространство, ранее занимаемое индексом, освобождается. Оно может быть впоследствии использовано любым объектом базы данных.

Команда DROP INDEX удаляет один или несколько индексов из текущей базы данных.

DROP INDEX index_name ON table_ name

    [ WITH ( <drop_clustered_index_option> [ ,...n ] ) ]

<drop_clustered_index_option> ::=

{

    MAXDOP = max_degree_of_parallelism

    | ONLINE = { ON | OFF }

   | MOVE TO { partition_scheme_name ( column_name )

            | filegroup_name

            | "default" }

}

index_name

Имя индекса, который необходимо удалить.

table_name

Имя таблицы, на которой создан индекс.

<drop_clustered_index_option>

Управляет параметрами кластеризованного индекса. Эти параметры неприменимы к другим типам индексов.

MAXDOP = max_degree_of_parallelism

MAXDOP можно использовать для ограничения числа процессоров, используемых при параллельном выполнении планов. Параллельные операции с индексами доступны только в редакциях Developer, Enterprise и DataCenter. Максимальное число процессоров завис от редакции (Enterprise – 64, DataCenter – 256). Значение по умолчанию 0 - в зависимости от текущей рабочей нагрузки системы использует реальное или меньшее число процессоров.

ONLINE = { ON | OFF }

Определяет, будут ли базовые таблицы и связанные индексы доступны для запросов и изменения данных во время операций с индексами (только в выпусках SQL Server Enterprise и Developer). Значение по умолчанию - OFF.

MOVE TO { partition_scheme_name(column_name) | filegroup_name | "default" }

Определяет размещение, куда будут перемещаться строки данных, находящиеся на конечном уровне кластеризованного индекса. Данные перемещаются в новое расположение со структурой типа куча. В качестве нового расположения можно указать файловую группу или схему секционирования, но они должны уже существовать. Параметр MOVE TO недопустим для индексированных представлений и некластеризованных индексов. Если ни схема секционирования, ни файловая группа не указаны, результирующая таблица помещается в схему секционирования или файловую группу, которая определена для кластеризованного индекса.

Если кластеризованный индекс удаляется с указанием параметра MOVE TO, то все некластеризованные индексы базовых таблиц создаются заново, но остаются в исходных файловых группах или схемах секционирования.

partition_scheme_name(column_name)

Указывает схему секционирования, в которой будет размещена результирующая таблица. Схема секционирования должна быть создана заранее. Если схема секционирования не указана и таблица секционирована, таблица включается в ту же схему секционирования, где размещен существующий кластеризованный индекс.

Имя столбца в схеме не обязательно должно соответствовать столбцам из определения индекса. Можно указать любой столбец базовой таблицы.

filegroup_name

Указывает файловую группу, в которую будет помещена результирующая таблица. Если размещение не указано и таблица не секционирована, тогда результирующая таблица включается в ту файловую группу, где размещен существующий кластеризованный индекс. Файловая группа должна существовать.

"default"

Указывает размещение по умолчанию для результирующей таблицы.

Следующий пример иллюстрирует удаление индекса IX_ProductVendor_VendorID в таблице ProductVendor.

DROP INDEX IX_ProductVendor_BusinessEntityID

ON Purchasing.ProductVendor;

Соседние файлы в предмете Информатика