繁体   English   中英

PHP5-SQLSRV太慢

[英]PHP5 - SQLSRV too slow

我正在使用sqlsrv从sql服务器数据库中获取数据。 该数据库位于PHP的不同服务器中(外部局域网)。

我使用带有很多UNION的查询。 如果我在Management Studio上运行查询,则大约需要4-5秒钟来获取所有数据...但是,如果我使用PHP和sqlsrv,则大约需要57秒钟!

这是我正在使用的代码:

        $connectionInfo = array("Database"=>$db, "UID"=>$u, "PWD"=>$p, "CharacterSet"=>"UTF-8");
    $conn = sqlsrv_connect($serverName, $connectionInfo);
    $errors = sqlsrv_errors(SQLSRV_ERR_ERRORS);
    $tsql = $query;
    $stmt = sqlsrv_query($conn, $tsql, array(), array( "Scrollable" => 'static' ));
    $json = array();
            do {
                while ($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
                    $json[] = $row;                  
                }
                } while ( sqlsrv_next_result($stmt) );  
    echo json_encode($json);    

有什么想法我做错了吗?

试试这个代码:

$this->stmt = sqlsrv_query($this->conn, $sql, null, array( "Scrollable" => SQLSRV_CURSOR_FORWARD ));

SQLSRV_CURSOR_STATIC允许您以任何顺序访问行,但不会反映数据库中的更改。 static是SQLSRV_CURSOR_STATIC的缩写形式。

请看一下: https : //docs.microsoft.com/zh-cn/sql/connect/php/cursor-types-sqlsrv-driver

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM