初始数据库连接速度慢(php/mssql)

初始数据库连接速度慢(php/mssql)

我们的网络服务器和数据库服务器位于本地网络上,网络服务器使用 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 秒。

一分钟左右后似乎会出现某种超时,需要重新缓存某些内容。我如何才能找出原因并尽可能增加超时时间?

答案1

看起来这与 MSSQL 对 10.200.2.1 进行反向查找有关,该查找已超时。通过在 hosts 文件中添加适当的条目,可以立即解决问题并解决等待问题。

答案2

我遇到了相同或类似的问题。我尝试了主机文件解决方案,但没有任何效果。我的首次加载时间远超过 4 秒……更像是 45 秒,然后包括初始页面在内的每个页面几乎立即加载。然后如果它停留 60 秒,我又会再次获得缓慢的 45 秒加载。我尝试在数据库中运行所有查询并快速获得结果。

奇怪的是,如果我直接在 Web 服务器上运行该网站,它就可以正常工作。这是否可以归结为网络配置问题?

有人有其他想法/解决方案吗?我在 Windows Server 2019 上使用 .php pdo 连接,在单独的 Windows 机器上使用 sql server 2019。

相关内容