Регламентные операции с индексами в MS SQL Server (Скрипты для SQL-Server — Часть 2)

В данном вебинаре я расскажу о том, что такое индексы, зачем они нужны, какие регламентные операции необходимо выполнять с индексами, а также будут приведены соответствующие скрипты (для MS SQL-Server) для обслуживания индексов баз данных.

 

 

 

Видео в формате вебинара с подробным разбором всех скриптов:

 

 

Все переменные в скриптах собраны в соответствующем блоке в начале скриптов. Для отправки электронной почты используется предварительно настроенный профиль электронной почты компоненты DataBase Mail. О настройке компоненты можно прочитать, здесь. Все скрипты много раз опробованы в бою и протестированы на версиях MS SQL 2008, 2012, 2016.

Эти и другие скрипты доступны в репозитории: https://github.com/Tavalik/SQL_TScripts

Надеюсь, что данные скрипты помогут вам настроить регламентные задания по обслуживанию индексов баз данных.

Все вебинары по скриптам для SQL:

  1. Автоматизируем «перезаливку» баз (Скрипты SQL-Server — Часть 1)
  2. Регламентные операции с индексами в MS SQL Server (Скрипты SQL-Server — Часть 2)
  3. Еще немного полезных SQL-скриптов (Скрипты SQL-Server — Часть 3)
Было ли данное видео полезно для вас?
Да, очень полезно.
Немного полезно.
Совсем не полезно.
Не то, что я искал(а).
Смотреть результаты
Запись опубликована в рубрике SQL, Видео с метками . Добавьте в закладки постоянную ссылку.


7 Responses to Регламентные операции с индексами в MS SQL Server (Скрипты для SQL-Server — Часть 2)

  1. Сергей говорит:

    Спасибо за уроки. Времени читать тягомотину на сайте MS нет, а здесь коротко, наглядно. Да еще и с конкретными примерами. Правда в репозитарий не могу попасть — пустой экран по ссылке.

    • Виталий Онянов говорит:

      Спасибо за отзыв.

      По поводу ссылки, очень странно, пробовал с разных устройств, у меня проблем нет. Попробуйте зайти через мой профиль: https://github.com/Tavalik

  2. Жан говорит:

    Здравствуйте. После выполнения вашего скрипта (Обслуживание_индексов_БД.sql) (да и не только вашего скрипта, просто он показал ошибку) на одной из баз получаю сообщение:
    Msg 1943, Level 16, State 1, Line 1
    The index «_SystemSettings_1» on table «_SystemSettings» cannot be reorganized because page level locking is disabled.
    В общем не удалось обслуживание. Что-то с таблицей.
    Сталкивались с таким ? Что посоветуете?

    • Аноним говорит:

      Вот причина: https://its.1c.ru/db/metod8dev#content:5837:hdoc:p3

      Важно! Начиная с версии платформы 8.3.22 необходимо выполнять дефрагментацию индексов по следующему алгоритму:

      До дефрагментации индекса необходимо включить страничные блокировки. Пример команды: ALTER INDEX index_name ON table_name SET (ALLOW_PAGE_LOCKS = ON, ALLOW_ROW_LOCKS = ON);
      Выполнить дефрагментацию.
      Обратно выключить страничные блокировки. Пример команды: ALTER INDEX index_name ON table_name SET (ALLOW_PAGE_LOCKS = OFF, ALLOW_ROW_LOCKS = ON);

      Но как это правильно сделать в скрипте тоже не понимаю.

      • Аноним говорит:

        USE [ИмяБазы]
        EXEC sp_MSforeachtable ‘ALTER INDEX ALL ON ? SET (ALLOW_PAGE_LOCKS = ON)’
        EXEC sp_MSforeachtable ‘ALTER INDEX ALL ON ? SET (ALLOW_ROW_LOCKS= ON)’
        GO

        после реорганизации

        USE [ИмяБазы]
        EXEC sp_MSforeachtable ‘ALTER INDEX ALL ON ? SET (ALLOW_PAGE_LOCKS = OFF)’
        EXEC sp_MSforeachtable ‘ALTER INDEX ALL ON ? SET (ALLOW_ROW_LOCKS= ON)’
        GO

        • Аноним говорит:

          спс

        • Аноним говорит:

          Можно оптимизировать и не делать 2 цикла!
          Соответствтенно до реорганизации:
          EXEC sp_MSforeachtable ‘ALTER INDEX ALL ON ? SET (ALLOW_PAGE_LOCKS = ON, ALLOW_ROW_LOCKS= ON)’

          После:
          EXEC sp_MSforeachtable ‘ALTER INDEX ALL ON ? SET (ALLOW_PAGE_LOCKS = OFF, ALLOW_ROW_LOCKS= ON)’

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *