Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-05-2003
st7 st7 is offline
Registrado
 
Registrado: may 2003
Posts: 5
Poder: 0
st7 Va por buen camino
Unhappy AYUDA Busquedas lentas

estoy utilizando una base de datos bastante grande, y estoy utilizando la propiedadad datamodule1.Table1.Locate("edit1.text", TRUE); para buscar algo en especial pero es una busqueda supremamente lenta que puedo hacer para mejorar el tiempo de busqueda? que metodo debo utilizar si lo hago con consultas SQL sera igual de lento? QUE DEBO HACER HELP!!

Gracias
Responder Con Cita
  #2  
Antiguo 13-05-2003
delphicano delphicano is offline
Miembro
 
Registrado: may 2003
Ubicación: Quilpué, CHILE
Posts: 12
Poder: 0
delphicano Va por buen camino
Smile

Hola amigo, no sé en qué base de datos estarás trabajando, pero para las búsquedas en cualquier base de datos que tenga un tamaño considerable, la definición de índices es primodial para lograr un buen rendimiento en la consulta. Asegúrate que los índices se encuentren definidos para las columnas involucradas en tu consulta.

Pueden afectar otros aspectos de conección, red, procesador, etc. que no mencionas.

Espero haber dado una pequeña ayudita.

Suerte.
__________________
Saludos desde Quilpué, CHILE
Responder Con Cita
  #3  
Antiguo 14-05-2003
Avatar de __hector
[__hector] __hector is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Santo Domingo, Rep. Dom.
Posts: 1.075
Poder: 23
__hector Va por buen camino
Con consultas SQL no es ni remotamente lento.

Aclararte que el metodo locate si mal no recuerdo, invoca una busqueda secuencial en la tabla, por lo que los indices no te seran de mucha ayuda en este caso.

por cierto, que base de datos utilizas?
__________________
Héctor Geraldino
Software Engineer
Responder Con Cita
  #4  
Antiguo 14-05-2003
jceluce jceluce is offline
Miembro
 
Registrado: may 2003
Ubicación: Mar del Plata - Argentina
Posts: 29
Poder: 0
jceluce Va por buen camino
La respuesta depende del tipo de base de datos que estás usando:

Si usas C/S (Interbase, SQL Server, etc.): NO SE DEBE USAR LOCATE. hay que usar sentencias SQL ej.:

select * from Articulos where ArtiCod = 'M15200'

El locate busca sobre el resultado de la consulta, es decir si haces un select * from Tabla, que te devuelve 100000 registros, tu aplicacion se lee los 100000 registros, los almacena en un buffer (dentro del objeto TQuery, TIBQuery, TIBDataset, etc.) y luego busca dentro de ese buffer. Por eso es lento.

Si usas tablas Paradox la cosa cambia, ya que Locate puede hacer uso de los indices, si están definidos, y realizar la consulta en forma más eficaz. En mi experiencia personal he obtenidos mejores resultados usando FindKey en vez de Locate.
__________________
Saludos

Javier
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 03:04:02.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi