在尝试将我们的网站迁移到Azure的过程中,我们发现我们的PHP代码与MSSQL交谈存在问题。
在当前的专用主机(托管PHP和数据库)上,转到页面通常只需不到2秒。我还通过SSMS运行必要的查询,它们只需不到1秒钟。查询返回的数据量非常小--10-20条记录,总共少于100kb。
在Azure上托管网站(连接到Azure SQL数据库),同一页面加载大约需要40秒。进一步调查显示,这可能是因为数据库与PHP不在同一台机器上 - 当原始网站指向远程数据库(另一台专用机器或Azure SQL实例)时,页面加载时间会进入40秒范围。
在Azure案例中,网站和数据库都位于同一地区(N Europe)。使用我们的机器进行测试时,两者都位于英国。
当前的虚拟主机运行PHP 5.4和Microsoft SQL Server Express Edition。 Azure网站在PHP 5.4上运行。
在这两种情况下,我们都使用3.0.1 Microsoft SQLSRV驱动程序
如何在连接到远程SQL DB时提高性能?
交叉发布到服务器故障答案 0 :(得分:1)
不知道为什么你的响应时间从2秒跳到40秒,但......需要考虑的一些事项:
您提到在SQL Server Management Studio中测试查询(至少我假设SMS实际上是SSMS)。在针对SQL数据库进行测试时,查询性能如何?如果它接近40秒标记,很可能从数据从本地数据库移植到SQL数据库实例时缺少索引。
答案 1 :(得分:1)
在我的情况下,它是缓慢的DNS解析,在放入IP而不是MSSQL名称之后一切正常