none
Sqlservr вдруг начинает потребять 100% процессора RRS feed

  • Вопрос

  • С прошедшими праздниками!
    На предприятии работает сервер 1С в связке с MS SQL сервер. Всё работает хорошо. Но иногда возникает проблема во время активной работы с базой данных: еженедельное задание по перепроведению документов за квартал, выполняется в течение суток. Чаще всего оно проходит без ошибок. Но иногда во время очередного перепроведения 1С начинает сыпать ошибками, а в мониторе ресурсов видно, что служба "sqlservr" утилизирует свыше 100% процессора (виртуальная машина с двумя виртуальными процессорами). В остальное время перепроведения этот показатель равен примерно 50%. Смотрел логи SQL и Windows - не увидел никаких аномалий в это время. Запланированных задач на это время ни в SQL, ни в Windows нету. Примерно через два часа ошибки прекращаются и перепроведение документов продолжается нормально. Что бы это могло быть? Время не рабочее, по-этому другие задачи не активны. 

    Может ли быть такое, что SQL вдруг решает перестроить индексы? Как увидеть события по перестройке индесков в журнале? Какие могут быть другие причины?

    8 января 2019 г. 14:20

Ответы

  • Вот статья, которая будет полезна в вашей ситуации.

    Еще замечу, что статистика по ожиданиям, в том числе и по CPU, накапливается сиквелом и сбрасывается при перезапуске службы, либо при ручном обнулении статистики ожиданий.


    Innovation distinguishes between a leader and a follower - Steve Jobs

    15 января 2019 г. 9:14

Все ответы

  • Большинство проблем в связке 1C+SQL вызвано программистами желтой программы, учитывая что в логах у вас пусто, никаких запланированных задач нет и т.п., то нужно смотреть непосредственно на обработку 1С.
    9 января 2019 г. 6:13
  • Какая версия сиквела?

    Посмотрите топ запросов по CPU и отдайте программистам 1С для анализа и оптимизации. Если поставите последнюю SSMS, то в ней есть дополнительный отчет по производительности сервера с перечнем тяжелых запросов

    Также есть две волшебные "кнопки" для серверов SQL:

    1. maxdop

    2. перестройка индексов


    Innovation distinguishes between a leader and a follower - Steve Jobs

    9 января 2019 г. 7:18
  • Версия СУБД MS SQL Server 2014 Standard ver. 12.0.5589.7. Версия SSMS такая же.
    Я правильно понимаю, топ запросов и отчеты производительности нужно смотреть в момент возникновения проблемы? Если да, то это затруднительно, т. к. проблема возникает редко, и мне придется еженедельно после запуска перепроведения документов сутки следить за показателями. Это не реально. Как в SQL-сервере посмотреть тяжелые запросы, которые выполнялись, скажем, вчера? Вот сейчас смотрю отчет "Performance - Top queries by total CPU time", вижу на первом месте запрос, который выполнялся 2 минуты. Может это был тяжелый отчет, а может что-то другое. Как понять, когда этот запрос выполнялся последний раз?


    • Изменено yurybx 10 января 2019 г. 9:04
    10 января 2019 г. 8:54
  • Вот статья, которая будет полезна в вашей ситуации.

    Еще замечу, что статистика по ожиданиям, в том числе и по CPU, накапливается сиквелом и сбрасывается при перезапуске службы, либо при ручном обнулении статистики ожиданий.


    Innovation distinguishes between a leader and a follower - Steve Jobs

    15 января 2019 г. 9:14