MS SQL Server имеет проблемы, когда слишком много соединений и рабочих потоков от клиентов.
Вы можете проверить текущий счетчик соединений.
Select Count(*) FROM MASTER.DBO.SYSPROCESSES
Существуют зависимости между ядрами ЦП и рабочими потоками.
https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/configure-the-max-worker-threads-server-configuration-option?view=sql-server-2017
Максимальное количество рабочих потоков на вашем хосте.
Select max_workers_count from sys.dm_os_sys_info
Также вы можете увидеть типы ожидания THREADPOOL в TOP.
SELECT TOP 100
[Wait type] = wait_type,
[Wait time (s)] = wait_time_ms / 1000,
[% waiting] = CONVERT(DECIMAL(12,2), wait_time_ms * 100.0
/ SUM(wait_time_ms) OVER())
FROM sys.dm_os_wait_stats
WHERE wait_type NOT LIKE '%SLEEP%'
ORDER BY wait_time_ms DESC;
Об ожидании пула потоков:
https://www.sqlskills.com/help/waits/threadpool/
Проверьте эту версию.
Или я не понимаю ситуацию, и у вас есть проблема через X секунд после подключения и рабочего запроса.
Проверьте тайм-аут запроса в вашем приложении через строку подключения, например «queryTimeout = ...»