FoxPro/Visual FoxPro - Llamado a los expertos nuevamente

 
Vista:

Llamado a los expertos nuevamente

Publicado por Marcos Jara (155 intervenciones) el 01/07/2002 03:13:13
Hola amigos expertos de foxpro

Nuevamente hago este llamado para decirles que no funciona el foxpro y que está re lento, nuevamente pase malos momentos con mi cliente, por decirle que el problema era la red, tuvimos que cambiar entonces todo el cableado, el hub pasamos a 10/100mbps, y no hubo diferencias en el tiempo de respuestas de la consulta. En programación no se que puedo estar realizando equivocadamente, les pido auxilio por favoor...
A continuacion les envio el qpr, que utilizo para realizar las consulta de que les hablo, y una descripción de las tablas.
Existen 4770 productos, en 2 depositos, en la tabla itemdepositos tengo 5600 registros aproximadamente tambien, en donde se relacionan los productos con los depositos

estoy utilizando 2 tablas
PRODUCTOS
pro_codigo, pro_nombre
ITEMDEPOSITOS
ide_deposito, ide_producto, ide_cantidad, ide_bloqueado

Qpr para consultar productos
********************************
cBuscado = "cilindro 0.05 veridik tm " && es el nombre de producto que se busca

SELECT pro_codigo, pro_nombre, SUM(IDE_CANTIDAD), SUM(IDE_BLOQUEADO), PrecioVentaPredeterminado(pro_codigo) FROM productos left OUTER join ITEMDEPOSITOS ON pro_codigo = ide_producto INTO TABLE "BuscaquedaProductos" WHERE UPPER(pro_nombre) LIKE UPPE(CBuscado) ORDER BY pro_codigo GROUP BY pro_codigo
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:Llamado a los expertos nuevamente

Publicado por Abel (36 intervenciones) el 01/07/2002 12:40:08
Primero tendrias que ver el porque de usar LEFT OUTER con LEFT solo es mas rapido, segundo tendrias que ver de generar INDICES de busquedas en la tabla Productos, ya que estas haciendo una busqueda por Pro_Nombre y si sigue siendo muy lento tira el primer select dentro de un cursor sin el Order By y el Group By y luego hace un select del cursor con el Order By y el Group By , estas dos sentencias van a trabajar sobre un conjunto de datos mas reducidos.
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:Llamado a los expertos nuevamente

Publicado por LightBrother (77 intervenciones) el 01/07/2002 12:52:51
Marcos: hola, Abel tiene razón, separando los SQL serán mas rápidos, sin embargo el SQL que tenes no debería tardar mucho, tal vez el "cuello de botella" de tu programa se encuentre en otro lado, prueba a revisar todo el código.
De todas formas, si crees que ese SQL es el responsable, puedes crear algun indice cuya expresion sea como la que usas en el WHERE, por ejemplo, prueba con un índice cuya expreción sea: UPPER(PRO_NOMBRE).
Suerte.
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