Наш веб-сервер и сервер базы данных находятся в локальной сети, и веб-сервер использует IP-адрес для подключения к базе данных.
$con = new \PDO('sqlsrv:Server=10.200.2.1\sql2017;Database=dbname, $user, $pass);
$con->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
Первая страница, вызывающая этот код, займет около 4 секунд, чтобы запустить только вышеуказанный код. Затем я могу обновлять страницу так часто и так долго, как хочу, и он зарегистрирует этот код как почти 0 мс.
Но если я перестану обновлять страницу примерно на 1 или 2 минуты, первое соединение снова займет 4 секунды.
Все 50 запросов, которые я выполнил после выполнения приведенного выше кода, в любом случае выполнялись менее чем за миллисекунду на запрос.
Если я подожду две минуты и одновременный доступ к веб-сайту с двух отдельных компьютеров, оба займет 4 секунды.
Кажется, что через минуту или около того есть какое-то время ожидания, и что-то нужно снова кэшировать. Как мне узнать, что это, и, возможно, увеличить время ожидания?
Похоже, что это связано с тем, что MSSQL выполняет обратный поиск на 10.200.2.1, время ожидания которого истекло. Добавив соответствующую запись в файл hosts, это может более или менее мгновенно разрешиться и исправить ожидание.