Медленное подключение к SQL Server 2017 - PullRequest
2 голосов
/ 20 сентября 2019

После миграции нашего приложения c # с SQL Server 2008 на SQL Server 2017 мы поняли, что операции с интенсивным подключением значительно медленнее.

Я выделил код, который 10000 раз подключается к базе данных, и выполняю там простой запрос.Этот код выполняется около 5 секунд для SQL 2008 (или SQL 2012), но около 25 секунд для SQL 2017.

Код был выполнен для .NET 4.52 и протестирован на разных компьютерах с разными ОС, включая локальные исполнения на SQLСерверные машины (среди них два разных сервера SQL 2017).Я проверил встроенную и SQL Server аутентификацию.

Код для воспроизведения:

for (int i = 0; i < 10000; i++)
{
    using (var con = new SqlConnection("server=hostname;Trusted_Connection=True;database=dbname"))
    {
        con.Open();
        var cmd = new SqlCommand("SELECT 1", con);
        // if I ommit this line, the code runs very fast
        cmd.ExecuteScalar();
    }
}

Обновления из комментариев:

  • с использованием SQL Server версии 14.0.3223 (2017CU16)
  • пробовал различные имена хостов: hostname.domain, 127.0.0.1, (local)
  • пытался применить определенный протокол SQL Server (TCP / IP, именованные каналы, общая память)
  • первое выполнение после перезапуска службы SQL выполняется быстрее, дальнейшее выполнение выполняется так же медленно
  • скорость прогресса не постоянна - код иногда выполняется быстрее, а затем снова медленнее (без другой нагрузки на SQL Server)

Есть идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...