FoxPro/Visual FoxPro - consultas lentas

 
Vista:

consultas lentas

Publicado por Gabriela (25 intervenciones) el 15/04/2009 17:36:27
Hola a todos, tengo un gran problema. En mi sistema el origen de datos de mis reportes o presentacion de informacion en pantallas,en el 90 y tanto por ciento de los casos uso vista parametrizadas o select sql into cursor. Al pricipio esto andaba bien, pero ahora tengo tablas con mas de 600.000 registros y a veces tengo que hacer mas de una consulta el el mismo informe y se han hecho demasiado lentas.
Probé usando seek, found(), do while, etc y el tiempo se acorta muchisimo, pero para esto debería hacer un cambio enorme y crear un montón de indices. Mando un ejemplo de una consulta a ver si hay alguna forma de optimizarla y así evitar todo ese cambio.

*hago consulta de entradas - salidas del dia que estoy consultando

SELECT mov_stock.fecha_mov, mov_stock.id_proveed, mov_stock.cod_art,;
SUM(mov_stock.entrada_u - mov_stock.salida_u) AS EXISTE,;
SUM(mov_stock.entrada_k-mov_stock.salida_k) AS EXISTE
_k;
FROM gestion!mov_stock ;
LEFT OUTER JOIN gestion!comprob ON mov_stock.cod_cpte = comprob.cod_cpte ;
WHERE Comprob.mov_stock = 1 ;
AND Comprob.afecta_ex = 1;
and mov_stock.id_proveed =mprovee;
AND mov_stock.fecha_mov =mFdesde ;
group by mov_stock.cod_art INTO CURSOR cierre
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

RE:consultas lentas

Publicado por jose camilo (805 intervenciones) el 15/04/2009 21:54:13
lo mejor es pasar registros a una tabla de historia
te cuento k los dbf no son buenos para consultas tan grande o como tu dices te espera un buen tiempo hasta k el kiera.

otra alternativa son los procedimientos incluidos te aceleran un poco el proceso pero es un poco no mas
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

RE:consultas lentas

Publicado por Gabriela (25 intervenciones) el 16/04/2009 05:11:50
Me podrías explicar mejor lo de las tablas de historia? y lo de los procedimientos incluídos?
Lo que entiendo es que según tu experiencia el uso de consultas o vistas con gran cantidad de registros no sirve por que es muy lenta. Entonces cual es la alternativa, hacerlo con las instrucciones seek, do while, etc?
Te agradecería si me pudieras explicar un poco mejor .
Gracias por la rapidez de la respuesta
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