none
Не пересоздаётся индекс RRS feed

  • Вопрос

  • Здравствуйте

    Имеется БД 1С8, каждую ночь используя планы обслуживания запускается команда "Перестроение индекса"(без "сохранять индекс в режиме "в сети""), но почему то некоторые индексы остаются очень сильно фрагментированные.

    Из-за чего такое может быть и как это исправить? В какую сторону вообще копать?

    Запрос на получение информации о фрагментах индекса:

    SELECT *
    FROM sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, NULL)
    WHERE avg_fragmentation_in_percent > 0
    ORDER BY avg_fragmentation_in_percent DESC




    4 ноября 2017 г. 6:25

Ответы

  • Подскажите хоть версию и редакцию сиквела, а также скриншот настроек задания на реиндексацию покажите.

    Пока писал заметил - у вас в индексе очень мало страниц (смотрите столбец page_count). Дефоловые значения (рекомендуемые Microsoft для перестойки индекса - более 1000 страниц). У вас индексы малы, так что дефолтовый план обслуживания просто ингнорирует ваши индексы и это by design, т.к. дефрагментация призвана улучшить производительность на больших объемах данных на странице. Это не актуально для маленьких объемов данных.

    Начиная с версии, боюсь ошибиться, SQL Server 2014 (в SQL Server 2016 точно есть) в плане обслуживания можно менять параметр Page Count. Если у вас версия ниже, то вы можете либо смириться с тем, что маленькие индексы у вас не перестариваются, либо использовать скрипты вместо плана обслуживания (например, от Ola Hallengren).


    Innovation distinguishes between a leader and a follower - Steve Jobs


    • Изменено Ilya Ershov 5 ноября 2017 г. 17:52
    • Помечено в качестве ответа Антон П 8 ноября 2017 г. 5:38
    5 ноября 2017 г. 17:25

Все ответы

  • Добрый День.

    В поддержку  обратитесь.


    Я не волшебник, я только учусь MCP CCNA. Если Вам помог чей-либо ответ, пожалуйста, не забывайте жать на кнопку "Пометить как ответ" или проголосовать "полезное сообщение". Мнения, высказанные здесь, являются отражением моих личных взглядов, а не позиции работодателя. Вся информация предоставляется как есть без каких-либо гарантий. Блог IT Инженера, Twitter, YouTube, GitHub.

    4 ноября 2017 г. 16:11
    Модератор
  • Здравствуйте.

    Причём тут 1С? речь идёт БД MS SQL.

    Если эту БД в которой не удаётся дефрагментировать индексы удалить и создать заново, то какое то время время всё будет нормально, но потом опять начнут появляться.

    5 ноября 2017 г. 10:34
  • Подскажите хоть версию и редакцию сиквела, а также скриншот настроек задания на реиндексацию покажите.

    Пока писал заметил - у вас в индексе очень мало страниц (смотрите столбец page_count). Дефоловые значения (рекомендуемые Microsoft для перестойки индекса - более 1000 страниц). У вас индексы малы, так что дефолтовый план обслуживания просто ингнорирует ваши индексы и это by design, т.к. дефрагментация призвана улучшить производительность на больших объемах данных на странице. Это не актуально для маленьких объемов данных.

    Начиная с версии, боюсь ошибиться, SQL Server 2014 (в SQL Server 2016 точно есть) в плане обслуживания можно менять параметр Page Count. Если у вас версия ниже, то вы можете либо смириться с тем, что маленькие индексы у вас не перестариваются, либо использовать скрипты вместо плана обслуживания (например, от Ola Hallengren).


    Innovation distinguishes between a leader and a follower - Steve Jobs


    • Изменено Ilya Ershov 5 ноября 2017 г. 17:52
    • Помечено в качестве ответа Антон П 8 ноября 2017 г. 5:38
    5 ноября 2017 г. 17:25