PHPの古いドライバーmssqlを使用するコンポーネントがたくさんあります。Microsoftの新しいドライバーSQLSRVに切り替えたいのですが、クエリが非常に遅くなります。
+400000行を処理する多くのプロセスがあります。
これが40000行の私のテストです:
- 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を参照)。
新しいドライバーは、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 %')
ダイレクトquery()
を使用します(プリペアドステートメントを使用した場合、プリペアドなしで同じ結果になります)。
編集2:
PDO/ODBCテストを追加しました。驚いたことに、それはより速いです:o