在尝试将我们的网站迁移到 Azure 的过程中,我们发现我们的 PHP 代码与 MSSQL 对话存在问题。
在当前的专用主机(同时托管 PHP 和 DB)上,访问一个页面通常需要不到 2 秒的时间。我还通过 SSMS 运行了必要的查询,它们花费的时间不到 1 秒。查询返回的数据量非常小 - 10-20 条记录,当然总共不到 100kb。
使用 Azure 上托管的网站(连接到 Azure SQL 数据库),加载相同的页面大约需要 40 秒。进一步调查表明,这可能是由于数据库与 PHP 不在同一台机器上造成的 - 当原始网站指向远程数据库(另一台专用机器或 Azure SQL 实例)时,页面加载时间会上升到40 秒范围。
在 Azure 案例中,网站和数据库都位于同一区域(欧洲北部)。使用我们的机器进行测试时,两者都位于英国。
当前的虚拟主机运行 PHP 5.4 和 Microsoft SQL Server Express Edition。Azure 网站在 PHP 5.4 上运行。
在这两种情况下,我们都使用 3.0.1 Microsoft SQLSRV 驱动程序
连接到远程 SQL 数据库时如何提高性能?