Problema de rendimiento en consulta de foxpro desde .net

09/08/2007 - 14:10 por Enrique Catala Bañuls | Informe spam
Hola, tengo un problema de rendimiento cuando realizo consultas desde .net
hacia tablas .dbf de Foxpro 2.6.

Las tablas que quiero consultar son grandecitas ( unos 2 millones de
registros ) y tienen índices compuestos del estilo
anyo-numero-desdoble-letra. Tienen varios índices definidos , pero solo
quiero usar uno de ellos en la select, y de hecho en el where así lo
especifico.

El tema es que desde una nueva aplicación desarrollada en .net 2.0 , tengo
que hacer unas consultas sobre dichas tablas de FoxPro 2.6, pero por lo que
veo no me está utilizando el índice que tiene la tabla habilitado para ello.

Si hago la consulta desde VFP 7.0 me tarda unos 3 segundos y si la hago
(igual) desde ado.net , me tarda casi 1 minuto.

Estoy utilizando el driver VFPOLEDB para realizar las conexiones desde .net
hacia las tablas de foxpro y además , las tablas se encuentran en un
directorio libre ( no uso .dbc ).

Las tablas a las que consulto son tablas de foxpro 2.6 y utilizan índices
.cdx.

La pregunta es si existe alguna forma de conexión mas rápida desde .net
hacia tablas de foxpro, o si hay algúna propiedad del TableAdapter de .net
2.0 que desconozco donde especificar los índices de foxpro que utilizará la
consulta.

Muchas gracias.

Atentamente, Enrique Catala Bañuls
 

Leer las respuestas

#1 Enrique Catala Bañuls
24/09/2007 - 16:38 | Informe spam
a pasado algo de tiempo, pero ya me contesto a mi mismo ;)

Por si a alguien le interesa, que sepa que para que el driver OLEDB de
Visual Foxpro para .net utilice los índices de las tablas de foxpro, dichos
índices han de estar compuestos con la cláusula "+" y ademas en orden
ascendente. si no es así, los índices no serán usados.

Puede parecer una tonteria, pero simplemente haciendo otro indice (
manteniendo el antiguo ) que utilizaba la concatenación con "+", consegui
solucionar el problema.

saludos!
Atentamente, Enrique Catala Bañuls


"Enrique Catala Bañuls" wrote:

Hola, tengo un problema de rendimiento cuando realizo consultas desde .net
hacia tablas .dbf de Foxpro 2.6.

Las tablas que quiero consultar son grandecitas ( unos 2 millones de
registros ) y tienen índices compuestos del estilo
anyo-numero-desdoble-letra. Tienen varios índices definidos , pero solo
quiero usar uno de ellos en la select, y de hecho en el where así lo
especifico.

El tema es que desde una nueva aplicación desarrollada en .net 2.0 , tengo
que hacer unas consultas sobre dichas tablas de FoxPro 2.6, pero por lo que
veo no me está utilizando el índice que tiene la tabla habilitado para ello.

Si hago la consulta desde VFP 7.0 me tarda unos 3 segundos y si la hago
(igual) desde ado.net , me tarda casi 1 minuto.

Estoy utilizando el driver VFPOLEDB para realizar las conexiones desde .net
hacia las tablas de foxpro y además , las tablas se encuentran en un
directorio libre ( no uso .dbc ).

Las tablas a las que consulto son tablas de foxpro 2.6 y utilizan índices
.cdx.

La pregunta es si existe alguna forma de conexión mas rápida desde .net
hacia tablas de foxpro, o si hay algúna propiedad del TableAdapter de .net
2.0 que desconozco donde especificar los índices de foxpro que utilizará la
consulta.

Muchas gracias.

Atentamente, Enrique Catala Bañuls

Preguntas similares