FoxPro/Visual FoxPro - Filter y su lentitud / vistas?

 
Vista:

Filter y su lentitud / vistas?

Publicado por ROD (184 intervenciones) el 16/06/2001 05:29:14
Porque se recomienda no usar vistas en el desarrollo de aplicacion?
Proque no se debe abusar de los refresh?

El comentario es debido a que en un proceso donde estan Involucrados 4 tablas la primera con no mas de 18 registros
la segunda con alrededor de 500 y la tercera con 1800, cabe notar que la segunda posee 52 campos y tercera 36 y la cuarta 30
Resumiendo, este simple proceso de llenar otra tabla (la cuarta) de no mas de 40 Registros)a partir de las 3 tablas antes mencionadas toma alrededor de 5 segundo (otro dato: Mientras se llena la cuarta tabla esta es mostrada en pantalla mediante cajas de texto)
El problema es cuanto demorará al multiplicar por 10 0 100, bueno es Obvio segun por lo que se multiplique. pero es normal el tiempo para esa cantiadad de información.?

Atte ROD
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:Filter y su lentitud / vistas?

Publicado por Francisco Rodriguez (33 intervenciones) el 18/06/2001 17:09:20
Que tal!

A ver si entendi.., estas utilizando vistas para hacer filtros y para mostrar informacion de varias tablas?

Ok, referente a las vistas si son un pequeno problema, es muy lenta al momento de manejar informaciones grandes. Te puedo recomendar lo siguiente:

1. Crear un programa .prg, que por medio de un query saque esos datos y los envie a un cursor (es mucho mas rapido).

SELECT ......;
FROM TABLA1 INNER JOIN TABLA 2
LEFT OUTER JOIN TABLA 3
ON Clave1=Clave2;
ON Clave3=Clave4;
INTO CURSOR Cursor1

2. Crea una vista de ese cursor y listo

CREATE VIEW SQL View1 AS;
SELECT *;
FROM Cursor1

3. Muestra los datos de la vista en el reporte y listo!.

Te aseguro que es mucho mas rapido que usar los filtros de la vista.
Espero que te sirva..
Suerte!
byte!
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

vistas y filter

Publicado por wences (457 intervenciones) el 19/06/2001 17:57:08
El porque no se recomiendan vistas , es por lo mismo que no se recomiendan macros de sustitucion (&) , pero eso depende de donde lo leas ... el set deletd off tampoco se recomienda , pero nunca vi que diese demasiados problemas o fuese mas lento por ello ...

La mejor solucion para tu caso si no tienes que tratar esa informacion a posteriori es un cursor , select lo_que_sea y olvidate del filter porque el select se lo salta ...

El filter en si es instantaneo , el problema son los refrescos de esa informacion ...

En cuanto al resfresh depende de la tarjeta de video ... y lo de no abusar es una herencia de años atras ...

Otra cosa los tiempos no son exactamente asi , por que se duplique el numero de elementos no tarda el doble , curiosamente depende mas del nº de resultados validos , que del numero de registros a tratar ...

Prueba a usar el buffer si es demasiada informacion o a mostrar directamente en un grid los resultados con un cursor...

Espero te sirva...
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:vistas y filter

Publicado por Foxperto (894 intervenciones) el 20/06/2001 00:17:36
Hola ROD:

Comparto parte de la Idea Wences y Francisco... pero como siempre me gustaria agregar algo:

Porque no se recomiendan las Vistas, Ni Idea.

Porque no se recomiendan los Filtros, porque si tienes una tabla filtrada, igualito cuando muevas el puntero del mouse el recorera los registro y verificara cuales concuerdan con la Condicion del Filtro, entonces si tienes 100 reg y solo concuerdan con la condicion el 10 y 90, cuando del numero 10 quieras pasar al 90, internamente pasaras por 80 registros que no concuerdan.

* No estoy deacuerdo con no utilizar la Macro Sustitucion, es una de las cosas mas poderosas de los programas XBases.

Otra cosa, recuerda que la lentitud no solamente tiene que ver con VFP, tambien tienes el CPU, la RAM, el Video, etc.

De todas maneras si quieres utilizar Filtros te recomiendo que no utilizes el Set Filter To... Yo creo que seria preferible que crees un Indice Filtrado y lo actives cuando necesites utilizar el Filtro, Si es mejor o peor no se, pero a mi me a dado buenos resultados...

Bueno espero no haberlos aburrido...

Prueba y me cuentas.

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