私はsqlsrvを使用してSQL Serverデータベースからデータをフェッチしています。このデータベースは、PHPの別のサーバー(ローカルネットワーク外)にあります。PHP5 - SQLSRV too slow
多くの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);
私が間違ってやっているの任意のアイデア:
これは私が使用しているコードはありますか?
どのくらいのデータを送受信していますか? DBがローカルでない場合は、時間がかかることが予想されます。どちらかのデータを送受信しないでください。sprocや他のメソッドを使ってDBを実行したり、php exeを使ってDBをマシンに移動したりしてください。 – atoms
時間がDB処理時間に基づいているかどうかを確認する必要があります(より良いクエリをコーディングし、インデックスを設定し、DBサーバーのリソースをチェックする必要があります)...またはネットワーク転送時間(多くのデータ、ネットワーク競合、...)。 – Nic3500