Hm. Я не знаю много о MS SQL, но оптимизация этого единственного вызова может быть трудной.
Одна вещь, которая приходит на ум, это попытка mssql_pconnect () , конечно:
Во-первых, при подключении функция сначала пытается найти (постоянную) ссылку, которая уже открыта с тем же хостом, именем пользователя и паролем. Если он найден, вместо открытия нового соединения будет возвращен идентификатор для него.
Но вы, наверное, уже думали об этом.
Во-вторых, вы не говорите, работает ли MS SQL на той же машине, что и PHP-часть, но если это не так, может быть, есть под рукой основная проблема с сетью? Как быстро классическая ping
между одним хостом и другим? То же самое относится и к виртуальной машине, которая не настроена идеально. 200 миллисекунд действительно звучат очень, очень медленно.
Затем в комментариях пользователя к mssql_connect () есть разговоры о собственном драйвере PHP для MS SQL. Я ничего не знаю об этом, будет ли он соответствовать «старому» синтаксису и применим ли он в вашей ситуации, но это может стоить посмотреть.
Пользовательские заметки всегда стоит посмотреть, здесь есть лакомые кусочки, вроде этот :
На всякий случай это помогает людям здесь ... Мы работали рваные из-за крайне медленных подключений из IIS6 -> SQL Server 2000. Переключение с CGI на ISAPI несколько исправило это, но первоначальное подключение все равно приняло 10 секунд, и в конце концов соединения не будут работать.
Решением было добавить IP-адрес сервера базы данных в файл HOST на сервере, указав его имя внутреннего компьютера. Похоже, что какой-то поиск DNS был виновником.
Теперь связи и запросы летят, и мир снова прав.