Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-08-2013
JAI_ME JAI_ME is offline
Miembro
 
Registrado: ene 2006
Posts: 188
Poder: 19
JAI_ME Va por buen camino
Optimizar consulta

Buenos días, no estoy seguro que se pueda hacer algo al respecto pero les voy a comentar mi caso, en la empresa donde trabajo tenemos un software DOS - clipper que usa como BD archivos .DBF, compramos un canal de datos en fibra optica de 256k de ancho de banda con el fin de interconectar todas nuestras sedes.

En la "sede 1" hay un archivo .DBF que pesa 10.7Mb y tiene 8.000 registros ingresados, hice una consulta SQL sobre esta tabla con un programa hecho en delphi desde la "Sede 2" pero esta consulta tarda mas de 15 minutos en ejecutarse, es obvio que si el archivo estuviera locamente en mi equipo o en la red local la cosa fuera diferente, pero en este caso esta en otra sede geograficamente distante pero conectados a traves del canal, hay alguna forma de mejorar la velocidad de esta consulta.

les agradezco su colaboración y si hay algo que se pueda hacer gracias.
__________________
JaiMelendez
Responder Con Cita
  #2  
Antiguo 16-08-2013
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.233
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por JAI_ME Ver Mensaje
...pero esta consulta tarda mas de 15 minutos en ejecutarse...
Hay algo ahí que no está bien.
Con ese tiempo puedes traerte el fichero y ejecutar la consulta en local.
Tal vez deberías diseñar de otra forma la petición de datos.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 16-08-2013
JAI_ME JAI_ME is offline
Miembro
 
Registrado: ene 2006
Posts: 188
Poder: 19
JAI_ME Va por buen camino
La consulta que hago es algo así

Select campo 1, campo 2, campo 3 from "\\192.168.1.68\c\bd\Miarchivo.DBF"
where campo 1 <> 0

Donde 192.168.1.68 es la IP del equipo 1, lo que intento es optimizar la consulta si se puede, sin necesidad de copiar y pegar el archivo al local, se podrá hacer algo ?
__________________
JaiMelendez
Responder Con Cita
  #4  
Antiguo 16-08-2013
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.233
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Sólo por curiosidad.
¿Qué tarda si copias el archivo de una máquina a otra?
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 16-08-2013
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.457
Poder: 20
newtron Va camino a la fama
Hola.

Por mi experiencia las consultas SQL no son la mejor forma de manejar la información con ficheros DBF, lo más rápido es usando los índices y escribiendo el código a mano. De todas formas 15 minutos me parece excesivo para una tabla con tan pocos registros.

¿Has probado a hacer la consulta desde el bde admin?, aunque no tendría que tener nada que ver.

Edito: me doy cuenta que estás abriendo la tabla desde otra ubicación y estás conectado por internet, eso si que es lento.
__________________
Be water my friend.
Responder Con Cita
  #6  
Antiguo 16-08-2013
JAI_ME JAI_ME is offline
Miembro
 
Registrado: ene 2006
Posts: 188
Poder: 19
JAI_ME Va por buen camino
gracias y como puedo hacer consultas a traves de los indices desde delphi ?
__________________
JaiMelendez
Responder Con Cita
  #7  
Antiguo 17-08-2013
orodriguezca orodriguezca is offline
Miembro
 
Registrado: ene 2009
Posts: 221
Poder: 16
orodriguezca Va por buen camino
No creo que haya forma de mejorar esta consulta. El gestor de base de datos tiene que accesar la totalidad del archivo físicamente y realizar muchos I/O sobre la red WAN. Aún cuando existan indices, dada la condicion campo1 <> 0, habría que recorrer todo el indice para encontrar los registros coincidentes, esto es lento. Por otra parte estamos diciendo que el ancho de banda es de solo 256Kb, los cuales seguramente no están dedicados exclusivamente a la ejecución de está consulta. No veo solución fácil.
Responder Con Cita
  #8  
Antiguo 19-08-2013
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.457
Poder: 20
newtron Va camino a la fama
Bueno, eso depende de la cantidad de registros que tengan campo1=0, si son pocos lógicamente tendrá que evaluar casi todos los registros pero si son muchos y tiene un índice por ese campo puede hacer un SetKey y dejar fuera los que no cumplan la condición. El tema es que depende qué sistema de índices use con la tabla DBF, porque hay distintos tipos, y no sé cual de ellos se podrá abrir desde Delphi.

¿Qué indices usa el programa DOS?
__________________
Be water my friend.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Optimizar consulta con Union ALL chinosoft Firebird e Interbase 2 06-10-2010 19:02:19
optimizar consulta martinchooozzz SQL 5 15-12-2009 19:11:42
Optimizar Consulta - algoritmo jmartinez MySQL 2 28-08-2007 18:06:37
Optimizar Consulta en Firebird AGAG4 Firebird e Interbase 14 10-01-2006 03:11:30
Optimizar Consulta dunia_lv MS SQL Server 2 21-04-2005 10:43:51


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


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