События
Присоединение к вызову ИИ Навыков
8 апр., 15 - 28 мая, 07
Отточите свои навыки ИИ и введите подметки, чтобы выиграть бесплатный экзамен сертификации
Зарегистрируйтесь!Этот браузер больше не поддерживается.
Выполните обновление до Microsoft Edge, чтобы воспользоваться новейшими функциями, обновлениями для системы безопасности и технической поддержкой.
Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: SQL Server Управляемый экземпляр SQL Azure
Перестраивает один или более индексов для таблицы в указанной базе данных.
Важно!
Эта функция будет удалена в будущей версии SQL Server. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется. Используйте вместо нее инструкцию ALTER INDEX.
Область применения: SQL Server 2008 (10.0.x) и более поздних версий.
Соглашения о синтаксисе Transact-SQL
DBCC DBREINDEX
(
table_name
[ , index_name [ , fillfactor ] ]
)
[ WITH NO_INFOMSGS ]
Имя таблицы, содержащей указанный индекс или индексы для перестроения. Имена таблиц должны соответствовать правилам для идентификаторов.
Имя индекса для перестроения. Имена индексов должны соответствовать правилам для идентификаторов. Если аргумент index_name задан, также должен быть указан аргумент table_name. Если index_name не указан или не указан ' '
, все индексы таблицы перестроены.
Процент пространства на каждой странице индекса для хранения данных при создании или перестроении индекса. Fillfactor заменяет коэффициент заполнения при создании индекса, став новым значением по умолчанию для индекса и для любых других некластеризованных индексов перестроен, так как кластеризованный индекс перестроен.
Если значение fillfactor равно 0, DBCC DBREINDEX
использует значение коэффициента заполнения, указанное для индекса. Это значение хранится в представлении sys.indexes
каталога.
Если аргумент fillfactor задан, также должны быть указаны аргументы table_name и index_name. Если fillfactor не указан, используется коэффициент заполнения по умолчанию 100. Дополнительные сведения см. в статье Указание коэффициента заполнения для индекса.
Подавляет все информационные сообщения со степенями серьезности от 0 до 10.
DBCC DBREINDEX
перестраивает индекс для таблицы или всех индексов, определенных для таблицы. При разрешенном динамическом перестроении индекса индексы с ограничениями PRIMARY KEY или UNIQUE можно перестраивать без необходимости удаления и повторного создания этих ограничений. Это значит, что индекс может быть перестроен без необходимости знания структуры таблицы или ее ограничений. Потребность в этом может возникнуть после массового копирования данных в таблицу.
DBCC DBREINDEX
может перестроить все индексы для таблицы в одной инструкции. Это проще, чем кодирование нескольких DROP INDEX
операторов и CREATE INDEX
инструкций. Поскольку работа выполняется одним оператором, автоматически атомарна, DBCC DBREINDEX
в то время как отдельные DROP INDEX
и CREATE INDEX
операторы должны быть включены в транзакцию, чтобы быть атомарным. Кроме того, предлагает больше оптимизации, DBCC DBREINDEX
чем отдельные DROP INDEX
и CREATE INDEX
операторы.
В отличие DBCC INDEXDEFRAG
от параметра или ALTER INDEX
с REORGANIZE
параметром, DBCC DBREINDEX
это автономная операция. Если некластеризованный индекс перестроен, общая блокировка хранится в таблице во время операции. Это предотвращает изменения в таблице. Если перестраивается кластеризованный индекс, удерживается монопольная блокировка таблицы. Это предотвращает какой-либо доступ к таблице, делая ее вне сети. Чтобы выполнить перестроение индекса в сети или управлять степенью параллелизма во время операции перестроения индекса, используйте ALTER INDEX REBUILD
инструкцию с параметром ONLINE
.
Дополнительные сведения о выборе метода для перестроения или реорганизации индекса см. в разделе "Реорганизация и перестроение индексов".
DBCC DBREINDEX
не поддерживается для использования в следующих объектах:
Если NO_INFOMSGS
не указано (имя таблицы должно быть указано), DBCC DBREINDEX
всегда возвращает следующее:
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Вызывающий должен быть владельцем таблицы, членом предопределенной роли сервера sysadmin, предопределенной роли базы данных db_owner или предопределенной роли базы данных db_ddladmin.
В следующем примере перестраивается кластеризованный индекс Employee_EmployeeID
с коэффициентом заполнения 80
для таблицы Employee
базы данных AdventureWorks2022
.
USE AdventureWorks2022;
GO
DBCC DBREINDEX ('HumanResources.Employee', PK_Employee_BusinessEntityID, 80);
GO
В следующем примере перестраиваются все индексы для таблицы Employee
базы данных AdventureWorks2022
при значении коэффициента заполнения 70
.
USE AdventureWorks2022;
GO
DBCC DBREINDEX ('HumanResources.Employee', ' ', 70);
GO
События
Присоединение к вызову ИИ Навыков
8 апр., 15 - 28 мая, 07
Отточите свои навыки ИИ и введите подметки, чтобы выиграть бесплатный экзамен сертификации
Зарегистрируйтесь!