Некоторые преимущества использования DBCC DBREINDEX для переиндексации в SQL Server:
- Возможность перестроить все индексы для таблицы в одной инструкции. 15 Это проще, чем кодирование нескольких операторов DROP INDEX и CREATE INDEX. 15
- Динамическое перестроение индексов. 15 Индексы с ограничениями PRIMARY KEY или UNIQUE можно перестраивать без необходимости удалять и повторно создавать эти ограничения. 15
- Оптимизация. 15 DBCC DBREINDEX предлагает больше оптимизации, чем отдельные операторы DROP INDEX и CREATE INDEX. 15
Некоторые недостатки использования DBCC DBREINDEX:
- Автономность операции. 1 Если перестраивается некластеризованный индекс, в таблице во время операции хранится общая блокировка, которая предотвращает изменения. 1 Если перестраивается кластеризованный индекс, удерживается монопольная блокировка таблицы, что предотвращает какой-либо доступ к ней. 1
- Ограничения. 1 DBCC DBREINDEX не поддерживается для использования в системных таблицах, пространственных индексах, индексах columnstore, оптимизированных для памяти, и результирующих наборах. 1
Важно учитывать, что функция DBCC DBREINDEX будет удалена в будущей версии SQL Server. 1 Вместо неё рекомендуется использовать инструкцию ALTER INDEX. 13