FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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 |
#2
|
||||
|
||||
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. |
#3
|
|||
|
|||
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 |
#4
|
||||
|
||||
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. |
#5
|
||||
|
||||
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. |
#6
|
|||
|
|||
gracias y como puedo hacer consultas a traves de los indices desde delphi ?
__________________
JaiMelendez |
#7
|
|||
|
|||
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.
|
#8
|
||||
|
||||
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. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Optimizar consulta con Union ALL | chinosoft | Firebird e Interbase | 2 | 06-10-2010 18:02:19 |
optimizar consulta | martinchooozzz | SQL | 5 | 15-12-2009 18:11:42 |
Optimizar Consulta - algoritmo | jmartinez | MySQL | 2 | 28-08-2007 17:06:37 |
Optimizar Consulta en Firebird | AGAG4 | Firebird e Interbase | 14 | 10-01-2006 02:11:30 |
Optimizar Consulta | dunia_lv | MS SQL Server | 2 | 21-04-2005 09:43:51 |
|