From: | "Alejandro D(dot) Burne" <alejandro(dot)dburne(at)gmail(dot)com> |
---|---|
To: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Velocidad al traer datos desde la base |
Date: | 2007-07-19 15:04:41 |
Message-ID: | 8398dc6d0707190804p39e07d86g8374abbbc921b44@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
El 16/07/07, Javier Ochoa <jochoa(at)vmsistemas(dot)com(dot)ar> escribió:
> Muchas gracias por sus sugerencias, ahora lo que yo veo es que para poder
> buscar algún artículo necesito tener todos los artículos disponibles. Y
> estamos hablando de 3000 artículos (no es tanto). Por ejemplo: cada vez que
> agrego un ítem o escribo el código del artículo y me trae los datos, o
> tecleo Enter y me abre una ventana con todos los artículos disponibles
> ordenados por código. Si yo en un campo de edición tecleo 2 letras por
> ejemplo "MO" me filtra todos los artículos que empiecen con "MO". Por eso la
> necesidad de traer todos los artículos.
> Pero para mi que el problema podría estar en el ODBC o por otro lado, ya que
> esa misma consulta en la maquina nueva, donde esta la base de datos, la hace
> muy rápido. El problema es en la maquina cliente.
> Bueno muchas gracias nuevamente y escucho sugerencias.
> Ya se que no hay una solución exacta.
> Ah! Las dos maquinas tiene Windows XP Proffessional.-
La lentitud probablemente tenga que ver con el controlador odbc, en
caso de que sea el mismo la única diferencia que tenes entre los dos
equipos es tu red, habría que ver la longitud de esos 3000 registros
para ver la cantidad de paquetes que necesitas enviar
por la red.
Por las características de la consulta que estas realizando, creo, lo
aconsejable sería que en vez de traer todos los registros, y luego
filtrarlos en el cliente, solo traer la información que el cliente
necesita en este caso algo como:
SELECT NombreArticulo, CodigoArticulo FROM Articulos WHERE
NombreArticulo LIKE 'MO%';
adicionalmente le pondría un limit para evitar que un usuario te
ingrese uno o dos caracteres solamente:
SELECT NombreArticulo, CodigoArticulo FROM Articulos WHERE
NombreArticulo LIKE 'MO%' LIMIT 100;
es poco probable que necesite buscar en más de 100 artículos, sino que
redefina su criterio de búsqueda.
Alternativamente podrías brindarle a tus usuarios algunos "tips" para
mejorar las búsquedas por ejemplo enseñarles el uso del "%" como
comodín (me ha dado muy buenos resultados), para buscar todos los
"CHOCOLATES FELFORT"
SELECT NombreArticulo, CodigoArticulo FROM Articulos WHERE
NombreArticulo LIKE '%CHOCO%FELFORT%' LIMIT 100;
Suerte, Alejandro
From | Date | Subject | |
---|---|---|---|
Next Message | Alejandro Roberto Morales Arce | 2007-07-19 15:07:22 | Recuperar datos borrados |
Previous Message | Alvaro Herrera | 2007-07-19 15:01:04 | Re: Variables Globales |