Re: Velocidad al traer datos desde la base

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

In response to

Responses

Browse pgsql-es-ayuda by date

  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