Подключение к SQL Server очень медленное - PullRequest
1 голос
/ 11 июля 2010

У меня есть стандартное php-приложение, которое использует SQL Server в качестве внутренней базы данных.Существует серьезная задержка ответа для каждой страницы, к которой я обращаюсь.Это мой сервер разработки, так что это не проблема с живой установкой, но это действительно раздражает для работы в системе.

У меня задержка 5 - 8 секунд на каждой странице.

  • Я использую SqlServer 2000 Developer Edition на виртуальной машине (Virtual PC).
  • Я установил SqlServer на свою машину для разработки, но получаю такую ​​же задержку.
  • Iизолировали проблему для вызова mssql_connect (вызов mssql_pconnect не имеет никакого эффекта)

  • Это проблема с сетью, связанная с тем, как я настроил (или не настроил, так как я не сделалдействительно изменить настройки по умолчанию) SQL-сервер.Это не просто проблема программирования, но я подумал, что могу получить здесь ценный отзыв.

Может кто-нибудь сказать мне, есть ли хитрость, особый набор протоколов, настройка реестра, что-то, чтоубьет эту задержку?

Ответы [ 4 ]

1 голос
/ 02 октября 2012

Я также испытывал 5-10 секундную задержку при каждом соединении, используя официальные драйверы Microsoft SQL для PHP (как предложено @gaRex) - ни один из ответов, опубликованных здесь, не решил это для меня.

Как предположил @ircmaxell, моей проблемой была проблема с DNS - и решение было отредактировать файл \windows\system32\drivers\etc\hosts (ваш локальный локальный файл хоста) и добавить к нему имя моей собственной машины.

В диалоговом окне «Свойства системы» найдите «имя компьютера» вашего компьютера - затем добавьте строку типа 127.0.0.1 my-computer в файл локального хоста.

Для меня задержка произошла еще раз, при следующей попытке загрузить страницу - после этого она была супер быстрой, никакой задержки вообще.

Обратите внимание, что эта проблема может возникать даже на физической машине, а не только на виртуальной машине.

Надеюсь, это поможет кому-то еще.

1 голос
/ 11 июля 2010

Возможно, это проблема DNS?Я знаю, что MySQL выполняет обратный поиск DNS при каждом входе в систему (не при каждом подключении).Если у вас нет обратной записи DNS для вашего сервера (или ваш DNS работает медленно), это может вызвать большую задержку при входе в систему.В MySQL есть возможность отключить это.Я не уверен насчет SQL Server, но я предполагаю, что он может делать что-то подобное ...

1 голос
/ 11 июля 2010

Я помню ту же проблему, но забыл, как мы ее решили.

Чтобы уточнить, укажите точные строки подключения, ваши версии SQLserver, а также попробуйте запустить эту старую хорошую утилиту c: \ WINDOWS \ system32\ cliconfg.exe, который также может пролить свет.

Да, я знаю, это из 2k, но парни из m $ не любят создавать клиентские инструменты с нуля.

Также попробуйте получить "правильные" клиентские библиотеки mssql для PHP.

1 голос
/ 11 июля 2010

Я столкнулся с сетевыми проблемами при запуске виртуального ПК, все, что связано с сетью, работает медленно, попробуйте добавить эту запись в свой реестр:

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Tcpip \ Parameters

  • Создайте новое значение DWORD с именем DisableTaskOffload и установите его значение равным 1.

  • Перезагрузите компьютер.

Это сработало для меня, источник .

...