PHP - 为什么新的 SQLSRV 驱动程序比旧的 mssql 驱动程序慢?

标签 php sql-server

我有很多组件使用来自 PHP 的旧驱动程序 mssql。 我想切换到 Microsoft 的新驱动程序 SQLSRV,但我的查询速度很慢。

我有许多处理 +400 000 行的进程。

这是我对 40 000 行 的测试:

  • testOldDriver_mssql = 行 40000:1 秒
  • testNewDriver_nonPDO = 第 40000 行:7 秒
  • testNewDriver_PDO = 行 40000:4 秒

这是我最大的进程(+480 000 行):

  • testOldDriver_mssql = 行 484856:27 秒
  • testNewDriver_nonPDO = 行 484856:120 秒
  • testNewDriver_PDO = 行 484856:47 秒
  • testPDO_ODBC = 行 484856:24 秒

新驱动程序肯定更慢吗?还是我遗漏了什么?

编辑 1:

“旧驱动程序”是指已弃用的 MSSQL 库(请参阅 php.net/mssql)。

新的驱动是微软直接做的(见http://www.microsoft.com/en-us/download/details.aspx?id=20098)

我的查询是

SELECT * FROM myTable 
WHERE pdvSaisie IN 
       (SELECT number FROM pdvs WHERE nom LIKE 'ZUEE %') 

并使用直接的 query()(没有准备,如果我使用准备好的语句,结果相同)。

编辑 2:

添加了 PDO/ODBC 测试。惊喜,它更快:o

最佳答案

关于PHP - 为什么新的 SQLSRV 驱动程序比旧的 mssql 驱动程序慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11825949/

相关文章:

php - 从 Laravel 数据库列获取值(value)

php - 用于德语的 pspell 和 aspell with php

javascript - 将javascript中的数据源发送到mySQL数据库

sql - t-sql 中的行相乘

sql-server - 将 excel 文件导入 Microsoft SQL 时出现截断错误

php - USE | 之间有什么区别? select_db 函数或 TABLE NAME.dbo?

PHP 多个三元运算符未按预期工作

php - Paypal IPN 库存控制

sql-server - 在开发 PC 上最小化安装 SQL Server 2012

sql-server - TSQL "<> ANY(subquery)"