Назад | Перейти на главную страницу

Запросы SQL-сервера действительно медленные только при первом запуске

Довольно странная проблема ... когда я запускаю свое .NET-приложение в первый раз после перезагрузки компьютера, запросы SQL Server очень медленные ... когда я приостанавливаю отладчик, я замечаю, что он зависает при получении ответа от запроса . Это происходит только при подключении к удаленному серверу SQL (2008) ... если я подключаюсь к одному из них на моем локальном компьютере, все в порядке. Кроме того, если я перезапущу приложение, оно будет работать быстро, даже на удаленном сервере SQL, и последующие запуски тоже будут в порядке. Единственная проблема - когда я впервые подключаюсь к удаленному SQL-серверу после перезагрузки компьютера. Более того, я даже заметил такое же точное поведение со сторонним приложением (также .NET), которое также подключается к удаленному серверу SQL.

Еще одна информация ... это только начало происходить с тех пор, как я обновил свою машину с XP до Win7 (64 бит). Кроме того, другие разработчики из моей команды, которые обновились до Win7, наблюдают такое же поведение (как с приложением, которое мы разрабатываем, так и со сторонним приложением .NET).

(скопировано из https://stackoverflow.com/questions/2014814/sql-server-queries-are-really-slow-only-on-first-run )

В Windows Vista, Windows 7 и SQL Server 2008 метод подключения отличается от метода подключения XP и SQL Server 2008.

Когда вы подключаетесь к серверу Windows 2008, на котором запущен SQL 2008 из Vista или Windows 7, Windows пытается согласовать подключение с помощью интерфейса поставщика поддержки безопасности [SSPI]. Иногда вы будете видеть проблемы, подробно описанные в http://support.microsoft.com/kb/811889.

Насколько я понимаю, переговоры об этом подключении задерживаются. Как вы можете видеть в статье базы знаний, есть способы заставить соединение использовать стандартное согласование NTLM.

Я бы попытался заставить NTLM, добавив SSPI = NTLM в строку подключения. Если вы больше не получаете снижение начальной скорости, это, вероятно, указывает на вашу проблему.

Проверьте настройки подключения клиента SQL (сначала TCP / IP?)

Добавьте запись на свой компьютер SQL 2008 в свой hosts файл. Если это дает вам высокую производительность после перезагрузки, вы столкнулись с проблемой разрешения имен.

Вы подключаетесь к этой машине по IP или имени хоста?

Что произойдет, если вы обращаетесь к этому компьютеру исключительно по его IP-адресу? (через строку подключения или SQL Management Studio)