He una gran cantidad de componentes utilizando el controlador de edad mssql desde PHP. Quiero cambiar al nuevo controlador SQLSRV de Microsoft, pero mis consultas son mucho más lentas.PHP - ¿Por qué el nuevo controlador SQLSRV es más lento que el antiguo controlador mssql?
He muchos procesos de manipulación +400 000 filas.
Aquí están mis pruebas con 40 000 filas:
- testOldDriver_mssql = Filas 40000: 1 segundos
- testNewDriver_nonPDO = Filas 40000: 7 segundos
- testNewDriver_PDO = Filas 40000: 4 segundos
Aquí mi mayor proceso (+480 000 filas):
- testOldDriver_mssql = Filas 484856: 27 segundos
- testNewDriver_nonPDO = Filas 484856: 120 segundos
- testNewDriver_PDO = Filas 484856: 47 segundos
- testPDO_ODBC = Filas 484856: 24 segundos
¿Es el nuevo controlador definitivamente más lento? ¿O me estoy perdiendo algo?
Edición 1:
Por "conductor viejo" me refiero a la biblioteca de MSSQL en desuso (ver php.net/mssql).
El nuevo controlador es la hecha directamente por Microsoft (ver http://www.microsoft.com/en-us/download/details.aspx?id=20098)
Mi consulta es
SELECT * FROM myTable
WHERE pdvSaisie IN
(SELECT number FROM pdvs WHERE nom LIKE 'ZUEE %')
y utilizando una directa query()
(resultado sin preparar y mismo si uso una declaración preparada) .
Edición 2:
prueba Agregado DOP/ODBC. Sorpresa, que es más rápido: o
¿Qué quiere decir exactamente por 'viejo' y 'nuevo'? ¿De qué tipo de actividad estamos hablando? ¿Utiliza declaraciones preparadas? Un montón de incógnitas ... –
Gracias, he editado mi mensaje original. –
¿Podría depender de su método de prueba? La prueba de la base de datos puede ser bastante difícil, con el caché de consultas en marcha y todo. Además, ¿leíste sobre las diferencias de rendimiento? Compruebe http://af-design.com/blog/2009/01/30/php-mysql-vs-mysqli-database-access-metrics/ y el 'local' http://stackoverflow.com/questions/171400/ which-is-fastest-in-php-mysql-or-mysqli – Nanne