相关疑难解决方法(0)

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

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

我有很多进程处理+400 000行.

这是我的40 000行测试:

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

这是我最大的进程(+48万行):

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

新驱动程序肯定更慢吗?或者我错过了什么?

编辑1:

"旧驱动程序"是指不推荐使用的MSSQL库(请参阅php.net/mssql).

新驱动程序是由Microsoft直接创建的驱动程序(请参阅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 %') 
Run Code Online (Sandbox Code Playgroud)

并使用直接query()(如果我使用准备好的声明,则没有准备和相同的结果).

编辑2:

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

php sql-server

6
推荐指数
1
解决办法
6828
查看次数

尽管已安装并启用驱动程序,但无法通过PHP(PDO)从SQL Server访问

我正在尝试访问SQL Server。

更新:作为对下面Clive的评论的回应,我也尝试过重新安装本机ODBC驱动程序,但没有更改。

我已经检查了所有可以找到的问题,一切似乎都井然有序。我的服务器详细信息:

PHP 5.4(通过Plesk管理)
SQL Server 2008 R2 SP2
Windows Server 2008 R2

用于PDO的最新mssql驱动程序位于EXT目录中,并在php.ini中进行了引用:

extension=php_sqlsrv_54_nts.dll
extension=php_pdo_sqlsrv_54_nts.dll
Run Code Online (Sandbox Code Playgroud)

PHPINFO() 给出以下内容:

PDO Drivers: mysql, sqlite, sqlsrv
pdo_sqlsrv support: enabled
sqlsrv support:  enabled
Run Code Online (Sandbox Code Playgroud)

我的连接字符串如下所示:

$DSN = "sqlsrv:Server=myDbServer,1433;database=my-dbname";
$PdoOptions = array(
    PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
);
$sparklyGenericPdoObj = new PDO($DSN,'myUsername','myPasswurde', $PdoOptions);
Run Code Online (Sandbox Code Playgroud)

但这只是给我以下错误,该错误以回旋方式链接到我已经安装的驱动程序(我已经检查了版本号):

PHP致命错误:消息为'SQLSTATE [IMSSP]的未捕获异常'PDOException':此扩展要求Microsoft SQL Server 2012本机客户端ODBC驱动程序与SQL Server通信。访问以下URL,以下载适用于x86的Microsoft SQL Server 2012 Native Client ODBC驱动程序:http : //go.microsoft.com/fwlink/?LinkId=163712 '

在此线程上(报告与我完全相同的错误),是一个解决方案,它表示您可以通过在PHPINFO中查找我上面提到的项目来确认驱动程序已安装:未连接到Sql Server 2012

任何帮助将非常感激!

php sql-server

1
推荐指数
1
解决办法
1万
查看次数

标签 统计

php ×2

sql-server ×2