У меня есть ~ 10-дневная установка WinServer2012R2 и SQL Server Express 2016 для тестирования. Я единственный пользователь на этой машине. База данных с .bak из SQL Server 2005 размером ~ 250 МБ восстанавливается без каких-либо проблем. После перезагрузки машины процесс «SQL Server NT - 64 Bit» использует 0% ЦП.
Через пару минут или часов и несколько простых запросов (без обновлений / вставок!) Из ЦП SSMS использование «SQL Server NT - 64 Bit» внезапно скачет до ~ 15% и остается там, даже в режиме ожидания. С этого момента запросы, которые обычно занимают менее секунды, внезапно занимают 2 минуты. Во время фактического запроса загрузка ЦП НЕ увеличивается. Сервер становится практически непригодным для использования в этом состоянии.
Только подключение к SQL Server Profiler занимает более 30 секунд. Помимо моих собственных запросов я вижу только очень мало запросов от SQLServerCEIP / SQLTELEMETRY, ~ 3 в минуту.
Перезапуск SQL-сервера не решает проблему. Загрузка процессора возвращается обратно к ~ 15%. Даже в нерабочее время SQL-Server не восстанавливается. Только перезагрузка всей машины решает проблему.
Поскольку это «готовая к установке» установка, существует только небольшая база данных, практически нет запросов, только я как пользователь и, вероятно, нет блокировок, во многих статьях, посвященных обычным проблемам производительности SQL-Server, говорится о многих вещах, которые не действительно не применимо здесь. Кажется, что SQL-Server исключительно хочет сосредоточиться на какой-то внутренней задаче.
Это виртуальная машина с 2 ГБ оперативной памяти и двумя Xeon на 2 ГГц. У меня также есть VS2016 на нем, и это действительно быстро. Нет антивируса, даже Windows Defender. Уже поздно здесь. Я попробую sp_whoisactive завтра. Мне действительно интересно, ЧТО там делает SQL-сервер ... На предыдущей машине с 1 ГБ та же БД работала под SQLServer2005 в течение 10 лет без проблем ...
Я не эксперт по SQL-Profiler. С чего мне начать искать?
auto_update_statistics_async
.