FoxPro/Visual FoxPro - Select desde vfp9 a fox26 lento

   
Vista:

Select desde vfp9 a fox26 lento

Publicado por Lukas (9 intervenciones) el 02/12/2015 22:56:15
Estoy haciendo una consulta a una tabla diseñada en FoxPro 2.6 para D.O.S. desde VFP9 SP2, dicha tabla tiene casi un millón de registros, tiene la página de códigos 850 y método de ordenación SPANISH, con el archivo estructural: facturas.cdx, con el índice "numero" cuya expresión de ordenación se creó con: INDEX ON numero TAG numero

La consulta es la siguiente:
SELECT * FROM facturas where numero="0001-0123654" INTO CURS curFacturas

Al ejecutar la sentencia anterior desde FoxPro 2.6, el resultado es inmediato,
pero al hacer la misma consulta desde VFP9, demora una eternidad, no termina nunca
teniendo en cuenta que la tabla nativa en FoxPro 2.6 no tiene registros marcados para eliminación, y en VFP9 se tiene establecido SET DELETE OFF y SET EXACT OFF

Si embargo al ejecutar un SEEK desde VFP9, lo localiza al instante

Alguien sabe porqué la lentitud?

De antemano gracias por sus respuestas
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Select desde vfp9 a fox26 lento

Publicado por Luis isaza (9 intervenciones) el 14/12/2015 20:11:39
Buenas tardes, lo has probado con doble igual? o enviando el resultado de la consulta a un dbf.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Select desde vfp9 a fox26 lento

Publicado por Lukas (9 intervenciones) el 19/12/2015 18:04:14
Sí, también con el signo igual doble, y también enviando a un DBF
Demora igual, decir demorar es mucho, la consulta no termina nunca, obligándonme a cerrar VFP por la fuerza bruta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Select desde vfp9 a fox26 lento

Publicado por Luis Horacio Isaza Arenas horacio.isaza@gmail.com (9 intervenciones) el 21/12/2015 14:35:56
Buenos días, prueba con esta sentencia

set collate to "machine"
set optimize on
set ansi on

SELECT * FROM facturas where alltrim(numero)="0001-0123654" INTO dbf curFacturas

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar