Оперативное выполнение операций над индексом
В SQL Server 2005 можно создать, перестроить иди удалить индекс в оперативном режиме. Параметр ONLINE разрешает одновременный доступ пользователей к базовой таблице или данным кластеризованного индекса и всем связанным некластеризованным индексам во время выполнения этих операций с индексами. Например, пока пользователь перестраивает кластеризованный индекс, он и другие пользователи могут продолжать обновление базовых данных и осуществлять к ним запросы. При выполнении DDL-операций в автономном режиме, таких как построение или перестроение кластеризованного индекса, эти операции удерживают монопольные блокировки на базовые данные и связанные индексы. Это предотвращает изменение базовых данных и осуществление запросов к ним до завершения операции с индексами.
Примечание. |
---|
Оперативные операции над индексом доступны только в выпуске SQL Server 2005 Enterprise Edition. |
Рекомендуется выполнять оперативные операции с индексами в производственной среде, работающей 24 часа в сутки и семь дней в неделю, когда имеется насущная необходимость одновременных действий пользователей во время выполнения операций с индексами.
Параметр ONLINE доступен в следующих инструкциях языка Transact-SQL.
- CREATE INDEX
- ALTER INDEX
- DROP INDEX
- ALTER TABLE (Чтобы добавить или удалить ограничения UNIQUE или PRIMARY KEY с параметром индекса CLUSTERED)
Дополнительные сведения об оперативных операциях над индексом см. в разделе Об оперативных действиях над индексом и Правила выполнения оперативных операций с индексами.
Пример
В следующем примере все индексы таблицы Product
в образце базы данных AdventureWorks
перестраиваются в оперативном режиме.
USE AdventureWorks;
GO
ALTER INDEX ALL ON Production.Product
REBUILD WITH (ONLINE = ON);
См. также
Основные понятия
Отключение индексов
Реорганизация и перестроение индексов
Блокировка в компоненте Database Engine
Основные сведения об уровнях изоляции на основе управления версиями строк
Другие ресурсы
ALTER INDEX (Transact-SQL)
ALTER TABLE (Transact-SQL)
CREATE INDEX (Transact-SQL)