拥有一个批处理 PHP 脚本,该脚本针对 SQL Server 2019 数据库运行数千个单独的 odbc_exec() SELECTS 和 INSERTS。从 PHP 7.3 升级到 7.4 后,该过程完成速度慢了 7 倍(升级前 20 分钟,升级后 180 分钟)。
我没有发现任何类似的问题/错误报告,需要帮助进行故障排除。是的,我可能必须重写以使用 PDO 或迁移到数据库存储过程,但我想了解 PHP 或 PHP 的 ODBC 扩展在 PHP 7.4 中降低了此脚本的性能的原因。
环境和测试说明
- 进程映射了许多相对较小的数据库记录(没有大的 nvarchar 字段等)。
- 所有 64 位软件和驱动程序。
- 将适用于 Windows 的预编译 PHP 7.3.32 (TS VC15) 升级到 7.4.25。还尝试了同样慢的 PHP 8.0。
- Windows Server 2019 Web 和 SQL Server(升级期间没有变化)。
- 库存 PHP ODBC 扩展配置(升级期间没有变化)。
- 用于 SQL Server 的最新 MS ODBC 驱动程序。尝试更新到最新可用 (17.8.11)。