Voy a ir probando todas las opciones y después les cuento cómo me fue…
Muchas gracias por la ayuda. Saludos,

 

 

Walter

 

De: [email protected] [mailto:[email protected]] En nombre de Rafael Copquin
Enviado el: lunes, 30 de julio de 2012 11:57 a.m.
Para: GUFA List Member
Asunto: [GUFA] Opciones para manejo de tablas gigantes

 

Te agradezco lo de sabios comentarios aunque no soy tan sabio.

En el caso de VFP, no te lo puedo asegurar, pero si usaras SQL Server como
back end la respuesta es muy clara: creas un stored procedure en el servidor
y eso si, con seguridad, te trae solamente los registros necesarios.

En el caso de VFP deberías hacer algo así (para probar la performance):

use tabladelservidordelaredlocal
select top 10............. into cursorlocal
use in tabladelservidordelaredlocal
select cursorlocal

De esa manera abrís brevemente la tabla de la red (mientras se hace la
consulta a un cursor local)  y la cerrás inmediatamente. No estoy muy seguro
de si al abrir la tabla estás trayendo todos los registros (creo que no),
pero al conectar y desconectar le hacés al servidor un "touch and go"

Probalo y medi la performance contra lo que tenés ahora. De todos modos, con
el ejemplo de paginación que publiqué en ese artículo podés hacer las
consultas mucho más eficientes.

Además, la consulta la podés hacer usando un cursoradapter, lo que te
permite modificar el o los registros de la tabla que estás trayendo, con
solamente mandarle un tableupdate.

Rafael Copquin



El 30/07/2012 11:31 a.m., Walter Ferrero escribió:

Rafael, buen día y muchas gracias por estar dispuesto a dar una mano como
siempre! Entiendo el concepto de paginación, pero creo que en algún momento
leí por algún lado que Visual Fox resuelve siempre las consultas localmente.
Es decir, en el caso de la cláusula TOP, ¿no trae primero TODO el conjunto
de datos de la tabla y después aplica localmente el filtro? Te consulto
porque si así fuera no voy a resolver el problema de rendimiento o uso de la
red que tengo actualmente. Muchas gracias nuevamente, y quedo al aguardo de
tus sabios comentarios. Saludos,

 

 

Walter

 

De: [email protected] [mailto:[email protected]] En nombre de Rafael Copquin
Enviado el: lunes, 30 de julio de 2012 10:49 a.m.
Para: GUFA List Member
Asunto: [GUFA] Opciones para manejo de tablas gigantes

 

Lo que tenés que hacer es usar paginación, o sea, traer a la pantalla
solamente la cantidad de artículos que necesitás ver. Eso lo hacés con
comandos select apropiados que usan la cláusula TOP.

Este artículo que escribí hace un tiempo te dice cómo hacer precisamente
eso. Está en inglés porque, como lo expliqué el otro día, la revista dejó de
publicar artículos sobre Visual FoxPro, pero dejó los que tenía solamente en
su versión en inglés.

http://www.universalthread.com/ViewPageArticle.aspx?ID=847

Saludos

Rafael Copquin





El 29/07/2012 10:07 p.m., Walter Ferrero escribió:

Amigos, hace un buen rato que no paso por acá… pero me veo en un callejón
sin salida y necesito recurrir a vuestra experiencia. El tema es el
siguiente: tengo en un cliente un sistema de gestión con la tabla de
artículos con gran cantidad de datos, y al ejecutar el sistema en red (son 8
puestos de trabajo + 1 server dedicado con la Base de Datos) tarda bastante
cuando interviene la tabla de artículos en algún formulario. Mi pregunta es
qué estrategia podría utilizar para no mover la totalidad de los datos por
la red cuando utilizo esta tabla. ¿Sería posible resolverlo con
cursoradapter o existe una solución mejor? Desde ya muchas gracias por su
tiempo. Saludos,

 

 

Walter Ferrero

Socio MUG 1696

 

 

 

 

Responder a