Скрипт переиндексации базы данных SQL - PullRequest
0 голосов
/ 28 июня 2018

Что происходит при запуске сценария ниже базы данных SQL Server.

Мой скрипт:

set arithabort on
set quoted_identifier on    

use TestDB

declare objcur cursor for
    select name
    from sysobjects
    where type = 'u'
    order by name    

declare @obj sysname    

open objcur   
fetch next from objcur into @obj    

while (@@fetch_status = 0)
begin
    dbcc dbreindex( @obj ) WITH NO_INFOMSGS   

    fetch next from objcur into @obj
end   

deallocate objcur

Ответы [ 2 ]

0 голосов
/ 03 июля 2018

Вы можете использовать приведенный ниже оператор для перестройки всех индексов.

Exec sp_msforeachtable 'ALTER INDEX ALL ON ? REBUILD'
0 голосов
/ 28 июня 2018

Вы

  • Включение ARITHABORT, который завершает запрос при переполнении. По умолчанию это включено, поэтому, скорее всего, избыточно
  • Включение QUOTED_IDENTIFIER, который указывает SQL Server следовать стандартам ISO в отношении кавычек. то есть позволяет вам использовать двойные кавычки для разделения идентификаторов и заставлять вас использовать одинарные кавычки для литеральных строк. Это должно быть включено, когда вы изменяете индексы для определенных типов столбцов, таких как вычисляемые столбцы, индексированные представления и т. Д. Включено по умолчанию.
  • Создание курсора (цикла) для всех таблиц
  • Цикл по каждой таблице и перестроение каждого индекса для каждой таблицы

Это не очень хорошая идея, потому что у вас нулевые пороги для начинающих. Это означает, что вы будете перестраивать каждый индекс независимо от того, фрагментирован он или нет, и независимо от количества страниц для этого индекса. Итак, если вы создали новый индекс для новой таблицы и выполнили эту команду, она перестроит его. Кроме того, это автономная операция. Таким образом, общая блокировка удерживается для некластеризованных индексов на протяжении всего периода перестроения, что предотвращает любые изменения в таблице ...

Я бы посмотрел на использование скриптов Олы . Они намного выше. Затем я прочитал о мифах и неправильных представлениях о фрагментации из Брента Озара и снова в этом посте .

...