powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Замедление после дефрагментации индексов
31 сообщений из 31, показаны все 2 страниц
Замедление после дефрагментации индексов
    #39745818
Danion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.

Есть сервер MS SQL 20016 SP2 с несколькими базами данных, где дефрагментации индексов не проводилось долго.
В основных таблицах доходит до 45-50%. Я настроил средствами SSMS management план обслуживания для индексов вида:
перестроение индекса (свободное место не изменяет, индексы онлайн по возможности, maxdop не меняет. приоритет низкий, быстрое сканирование, срабатывает при 30+ фрагментации и больше 1000 страниц), потом реорганизация индекса (сжатие больших объектов, быстрое сканирование, 10+ фрагментация и 1000 страниц), последнее действие обновление статистики.

Джоб запустился один раз на выходные. А в понедельник начались жалобы на увеличение времени отработки запросов, некоторые джобы разработчиков в 5-10 раз дольше выполнялись. Основная видимая причина - нагрузка на ЦПУ начала стабильно уходить в 100%.

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

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

Сейчас меня интересует может ли реально быть проблема от дефрагментации индексов, что вызывает и как избежать.

Пока видел только упоминание об увеличении времени до первого обновления статистики. Статистику обновлял - не помогло.
Либо вариант с изменением свободного места для страницы и MAXDOP, но тоже не мой вариант.
...
Рейтинг: 0 / 0
Замедление после дефрагментации индексов
    #39745909
Фотография Yasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот это вот поясните, плиз:
авторпотом реорганизация индекса (сжатие больших объектов, быстрое сканирование, 10+ фрагментация и 1000 страниц)
реорг ничего не сжимает.
сжимает компрессия, но это не реорг, а ребилд,
и главное, блобы как раз и не сжимаются.

в общем, если вы пожали данные, сделав rebuild with data_compression,
то не надо удивляться, что запросы теперь CPU выкушивают
...
Рейтинг: 0 / 0
Замедление после дефрагментации индексов
    #39745937
Danion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yasha123,
Сжатие больших объектов - название на русском внутри проектировщика планов.
Так это - compact large objects. Данный пункт именно в reorganize, не в rebuild. Включен по умолчанию и рекомендаций его отключать я не видел.
...
Рейтинг: 0 / 0
Замедление после дефрагментации индексов
    #39745952
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Danion
Сейчас меня интересует может ли реально быть проблема от дефрагментации индексов, что вызывает и как избежать.


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

если autoupdate/autocreate статистики на базе выключен, то может быть подобный эффект
...
Рейтинг: 0 / 0
Замедление после дефрагментации индексов
    #39745956
Фотография Yasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нет, compact large objects это совсем другое.
реорг это делает по умолчанию,
но это НЕ компрессия,
ничего не сжимается, просто высвобождаются пустые страницы.
это никак не повлияет на дальнейшее чтение, разве только в лучшую сторону
...
Рейтинг: 0 / 0
Замедление после дефрагментации индексов
    #39745962
Фотография Yasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komradоптимизатор решил посканировать таблицы

но ведь если "решил посканировать", то IO подскочит, а не CPU
...
Рейтинг: 0 / 0
Замедление после дефрагментации индексов
    #39745968
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yasha123komradоптимизатор решил посканировать таблицы

но ведь если "решил посканировать", то IO подскочит, а не CPU
+ параллелизм вестимо


Danion,
покажите результат

Код: sql
1.
select * from sys.configurations
...
Рейтинг: 0 / 0
Замедление после дефрагментации индексов
    #39745976
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komrad,

То есть раньше параллелизма не было, а после переиндексации выскочил? Я скорее поверю в перерасчет статистик. Но это кратковременно должно быть, несколько часов от силы.
...
Рейтинг: 0 / 0
Замедление после дефрагментации индексов
    #39745986
Andy_OLAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DanionДобрый день.

Есть сервер MS SQL 20016 SP2 с несколькими базами данных, где дефрагментации индексов не проводилось долго .
последнее действие обновление статистики .

Джоб запустился один раз на выходные. А в понедельник начались жалобы на увеличение времени отработки запросов, некоторые джобы разработчиков в 5-10 раз дольше выполнялись. Основная видимая причина - нагрузка на ЦПУ начала стабильно уходить в 100%.

Статистику обновлял - не помогло .


У Вас был loop join из-за давно непересчитываемой статистики, а теперь hash join с полным сканированием крупных таблиц. Раньше нагрузка ложилась при merge join на tempdb, сейчас не хватает ядер на процессорах.

Проверяйте охлаждение на процессорах, терпопасту под кулерами, проверяйте профиль электропитания, чтобы была максимальная производительность вместо сбалансированной.

И начните с того, что напишите сюда количество ядер и процессоров, тактовую частоту, модель процессоров. И что установлено в maxdop для всего инстанса MSSQL.
...
Рейтинг: 0 / 0
Замедление после дефрагментации индексов
    #39746091
Danion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
komrad,

При возникновении проблем запускал обновление статистики для пользовательских баз. Лучше не стало.

Max Degree of parallelism - 0. Это, насколько я помню, без ограничений. Но с чего бы внезапно начало плодить лишний параллелизм для загрузки ЦПУ?
...
Рейтинг: 0 / 0
Замедление после дефрагментации индексов
    #39746092
Danion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вторая часть
...
Рейтинг: 0 / 0
Замедление после дефрагментации индексов
    #39746105
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Danionkomrad,

При возникновении проблем запускал обновление статистики для пользовательских баз. Лучше не стало.

статистику можно обновлять по-разному
самая точная и долгая - fullscan

DanionMax Degree of parallelism - 0. Это, насколько я помню, без ограничений. Но с чего бы внезапно начало плодить лишний параллелизм для загрузки ЦПУ?
см коммент от Andy_Olap, очень вероятно
...
Рейтинг: 0 / 0
Замедление после дефрагментации индексов
    #39746107
Danion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Конечно вариант, что там сами разрабы успели наваять отбрасывать нельзя. Но интересуют возможные проблемы со стороны СУБД, не хочется встретить проблему на основном продуктиве после моего плана обслуживания.

Andy_OLAP,
"У Вас был loop join из-за давно непересчитываемой статистики, а теперь hash join с полным сканированием крупных таблиц. Раньше нагрузка ложилась при merge join на tempdb, сейчас не хватает ядер на процессорах."
Версия интересная, нужно обновить знания по теме.
"Проверяйте охлаждение на процессорах, терпопасту под кулерами, проверяйте профиль электропитания, чтобы была максимальная производительность вместо сбалансированной."
Виртуальная машина, сам сервер в ЦОД. Выдано ей 15 процов, 2,20 ГГЦ.
...
Рейтинг: 0 / 0
Замедление после дефрагментации индексов
    #39746113
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Danion,

вот это еще покажите

Код: sql
1.
select * from [DB].sys.database_scoped_configurations



DB - ваша база
...
Рейтинг: 0 / 0
Замедление после дефрагментации индексов
    #39746133
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Danion,

Вы случайно не загоняли fill factor к 100%. Если да, то это всё объясняет.
...
Рейтинг: 0 / 0
Замедление после дефрагментации индексов
    #39746143
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voronin,

сплит страниц аццки нагружает CPU по-вашему? У меня в базе все таблицы 100% заполнение имеют и нагрузка не выше 20% в плохую погоду.
...
Рейтинг: 0 / 0
Замедление после дефрагментации индексов
    #39746146
Andy_OLAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voroninDanion,

Вы случайно не загоняли fill factor к 100%. Если да, то это всё объясняет.
Вы думаете, что автор темы вместо дефолтного "reorganize pages" выбрал "change free space" как на картинке ? И выкрутил его на 0, получив fill factor 100?
...
Рейтинг: 0 / 0
Замедление после дефрагментации индексов
    #39746149
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обратите внимание, что у комрада виртуалка. А там уже какую гайку админ подкрутит.
...
Рейтинг: 0 / 0
Замедление после дефрагментации индексов
    #39746151
Danion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
a_voronin,

Думал об этом варианте, в sys.configuration min - 0, max - 100%.
Но опция в плане обслуживания default free space per page вроде оставляет то, что было задано при создании индекса.

komrad,
...
Рейтинг: 0 / 0
Замедление после дефрагментации индексов
    #39746163
Danion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На поддержку передали несколько серверов. Разворачивал и первоначально настраивал их не я, пока стараюсь менять настройки по минимуму. Хорошо, что мной же настроенные бекапы успели пройти. Только начал приводить сервера в адекватных вид и тут такой сюрприз.

Andy_OLAP,
Честно говоря, не очень помню информацию по loop join и hash join. Как освобожусь немного буду перечитывать по ним.
У меня есть бекапы до дефрагментации индексов и на дату, когда проблемы начались. При развертывании на тестовом сервере примерно повторить проблему и сравнить настройки удастся или тут привязка именно к тому серверу?
...
Рейтинг: 0 / 0
Замедление после дефрагментации индексов
    #39746167
Andy_OLAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DanionНа поддержку передали несколько серверов. Разворачивал и первоначально настраивал их не я, пока стараюсь менять настройки по минимуму. Хорошо, что мной же настроенные бекапы успели пройти. Только начал приводить сервера в адекватных вид и тут такой сюрприз.

Andy_OLAP,
Честно говоря, не очень помню информацию по loop join и hash join. Как освобожусь немного буду перечитывать по ним.
У меня есть бекапы до дефрагментации индексов и на дату, когда проблемы начались. При развертывании на тестовом сервере примерно повторить проблему и сравнить настройки удастся или тут привязка именно к тому серверу?
Берете разработчика, который говорит "с понедельника вот такой селект стал работать в 10 раз медленнее".
Берете бэкап до дефрагментации и разворачиваете на любом тестовом сервере. Запускаете селект. Записывает полученный план и время выполнения. Запускаете дефрагментацию по примеру на боевом сервере. Ждете завершения. Запускаете селект. Аналогично. Далее на всякий случай разворачиваете бэкап после дефрагментации с боевого сервера на дату, когда начались проблемы. Запускаете селект. Аналогично.

Затем с полученной информацией идете к разработчику, который умеет читать план выполнения запросов, садитесь рядом и долго думаете, раздирая свои одежды и посыпая голову пеплом.
...
Рейтинг: 0 / 0
Замедление после дефрагментации индексов
    #39746168
Andy_OLAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Danion,

Чтобы все было кошерно - тестовый сервер во время опытов не нагружаете больше ничем.
...
Рейтинг: 0 / 0
Замедление после дефрагментации индексов
    #39746179
Danion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Andy_OLAP,
Спасибо за ссылку на статью по join.

Попробую по тестировать.
При изменении join план запроса должен же меняться?

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

с 7 на 8 прошел план обслуживания, по графику регрессивных запросов план запроса при этом не менялся.
...
Рейтинг: 0 / 0
Замедление после дефрагментации индексов
    #39746180
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andy_OLAPБерете бэкап до дефрагментации и разворачиваете на любом тестовом сервере. Запускаете селект. Записывает полученный план и время выполнения.

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

если получили таки его, попробуйте пришпилить с помощью query data store, и перестроив индекы проверить производительность с форсированным "быстрым" планом и свежесгенеренным новым
...
Рейтинг: 0 / 0
Замедление после дефрагментации индексов
    #39746188
Danion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем за ответы.

Если верна версия Andy_OLAP, то со временем статистика обновится и сама по принципу "По умолчанию оптимизатор запросов обновляет статистику по мере необходимости для усовершенствования плана запроса" и похожее опять возникнет?

И кто разбирается в ошибках системных таблиц пользовательских БД - просьба подсказать в моей же теме
https://www.sql.ru/forum/1306487/oshibka-pri-checkdb

Заранее спасибо.
...
Рейтинг: 0 / 0
Замедление после дефрагментации индексов
    #39746189
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DanionСпасибо всем за ответы.

Если верна версия Andy_OLAP, то со временем статистика обновится и сама по принципу "По умолчанию оптимизатор запросов обновляет статистику по мере необходимости для усовершенствования плана запроса" и похожее опять возникнет?

она обновится, если включено обновление
если выключено, то не обновится
...
Рейтинг: 0 / 0
Замедление после дефрагментации индексов
    #39746192
Danion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
komrad,

Подразумевается пункт Auto Update Statistics в опциях базы? Там на всех базах включено, это вроде по умолчанию ставится.
...
Рейтинг: 0 / 0
Замедление после дефрагментации индексов
    #39746198
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Danionkomrad,

Подразумевается пункт Auto Update Statistics в опциях базы? Там на всех базах включено, это вроде по умолчанию ставится.
ну отсюда же не видно, что у вас там настроено...

+ посмотрите по базе
Код: sql
1.
2.
3.
4.
5.
select '  Automatic update statistics: ' + (case when DatabasePropertyEx(db_name(), 'IsAutoUpdateStatistics') = 1 then 'ON' else 'OFF' end)  
select '  Automatic create statistics: ' + (case when DatabasePropertyEx(db_name(), 'IsAutoCreateStatistics') = 1 then 'ON' else 'OFF' end)  

-- recompute stats OFF
select * from sys.stats where no_recompute=1
...
Рейтинг: 0 / 0
Замедление после дефрагментации индексов
    #39746201
Danion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
komradну отсюда же не видно, что у вас там настроено...


Я вроде и ответил, что настроено и где это смотрел в оснастке SSMS.

По всем базам
Automatic update statistics: ON
Automatic create statistics: ON

По select * from sys.stats where no_recompute=1 - пусто
...
Рейтинг: 0 / 0
Замедление после дефрагментации индексов
    #39746982
Фотография Mind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Danionс 7 на 8 прошел план обслуживания, по графику регрессивных запросов план запроса при этом не менялся.Вы уверены что запрос 4645 создал нагрузку на весь сервер? Судя по тому что вы описываете, картина немного другая. Я бы предположил что в результате обновления статистики слетел план у одного, может быть нескольких достаточно часто вызываемых запросов. Новый план потребляет много CPU, и так как у вас MAXDOP не ограничен, может впринципе "съесть" все 15 ядер. Как следствие все остальные запросы начали тормозить, ожидая процессорного времени. И тот что вы привели возможно был следствем, а не причиной тормозов. Хотя бы потому что у него даже план не изменился.

Ясно понятно что вам нужно найти виновника, но сделать это на тестовой базе где ничего не запущено может быть не просто. Восстанавливайте последний бэкап базы в момент тормозов и смотрите Query Store на запросы с максимальными total CPU.

Ну и ограничьте MAXDOP, вряд ли у вас там OLAP хранилище.
...
Рейтинг: 0 / 0
Замедление после дефрагментации индексов
    #39747103
Danion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mind,

Пока ещё не было возможности восстановить на тесте базы и что-то посмотреть.
Запрос с графика действительно скорее попал под нагрузку ЦПУ других запросов, а не вызвал сам.

Если опять появится проблема на боевом сервере, то ограничу MAXDOP, пока не понятно сколько оставить.

Наткнулся на старую тему на этом же сервере, где обсуждалась оптимизация запросов без их глобального изменения и в обсуждении всплыло использование хинтов изменяющих логику оптимизатора запросов с планом выполнения. Но слетают при стандартном обновлении статистики. В данном случае пока не известно было ли, но тоже может стать причиной изменений.
...
Рейтинг: 0 / 0
31 сообщений из 31, показаны все 2 страниц
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Замедление после дефрагментации индексов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]