Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-11-2012
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.669
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Bastante difícil es poder ayudar sin tener el equipo a mano y probar, que además lo pones más difícil. Por ejemplo, esas sqls que has puesto no son las que estás usando, evidentemente.

De todas formas, si la primera vez va lento y después va rápido, está claro que hay algo que no tiene que ver con la base de datos, deberías probarlo en local, luego en otro ordenador haciendo de servidor y así comprobar.
Desde luego, que aunque dices que lo has verificado, está claro que algo hace el sistema para tardar tanto la primera vez.

Si en lugar de probar antes esas consultas, pruebas otras diferentes, ¿también va lento la primera vez y después no?.

En fin, que no das mucha información para poder hacernos una idea real del sistema.
Responder Con Cita
  #2  
Antiguo 25-11-2012
lbuelvas lbuelvas is offline
Miembro
 
Registrado: may 2003
Ubicación: Colombia
Posts: 378
Poder: 24
lbuelvas Va por buen camino
Hola amigos, la situacion puede ser la siguiente: primero revisar la extension de la base de datos, evitar .gdb y colocarle .fdb, esto es debido a que no me acuerdo desde que version de Windows los archivos con extension .gdb estan relacionados con el sistema operativo y este hace una copia de seguridad la primera vez que se abre el archivo y si es de buen tamañao pude durar unos minutos. Lo segundo es que la consulta es un producto cartesiano puro, es decir, si tienes en la tabal a 1.000 registros y en la b unos 2.000, la tabla resultante endra 2.000.000 de registros y eso es demoradp escribir tantos registros en una tabla mas si tienes indicies y llaves priamrias y foráneas.

Puedes darnos un poco más de información del contenido de las tablas, volumen de registros y la consulta completa para tratar de colaborarte.
__________________
Luis Fernando Buelvas T.
Responder Con Cita
  #3  
Antiguo 26-11-2012
ARPE1 ARPE1 is offline
Miembro
 
Registrado: nov 2012
Posts: 43
Poder: 0
ARPE1 Va por buen camino
SQL muy lenta la 1ª vez

Hola y gracias por el interés.
La BD ya tiene extensión FDB. El producto cartesiano puro y duro, en este caso, es obligado. Por varias razones necesito que todos los artículos (tabla2) que entran en la consulta estén en todos los almacenes (tabla3) del cliente.
Ya probé en otro equipo (el mío) con diferentes protocolos (local y tcp_ip), me psa lo mismo. Buena idea esa de probar otras consultas, de momento he lanzado el producto cartesiano "sin condiciones", más duro todavía, y lo ha resuelto rápido. Me queda probarlo con udf's por ver si es tema de reserva de memoria.
La consulta real es la siguiente:
Código SQL [-]
Merge into Artal using (
  Select artic.artic, almac.cod as almac, 
    asCreaTalla(Artic.Tope1, Artic.Tope2) as MTallas,
    asIniTalla(asCreaTalla(Artic.Tope1, Artic.Tope2), 0) as MCeros
  from artic, almac
  where Artic.Activo = 'S' and Artic.Filtro = 'MP'
Datos on (Artal.Artic = Datos.artic and Artal.Almac = Datos.Almac)
When not matched then
  insert (ARTIC, ALMAC, MTALLAS, MSTOCK, MSTMAX, MPRECIBIR, MSTMIN, MUCOMPRAS, MUVENTAS, MPSERVIR, MCURSOFA)
  values (Datos.Artic, Datos.Almac, Datos.MTallas, Datos.MCeros, Datos.MCeros, Datos.MCeros, Datos.MCeros, Datos.MCeros, Datos.MCeros, Datos.MCeros, Datos.MCeros)
Artal: tabla de poco más de un millón de registros con esos 14KB de longitud
Artic: unos 52.000 registros
Almac: 40 registros
asCreaTalla, asIniTalla son udf's que tratan cadenas de texto. Como he mencionado probaré a quitarlas de la consulta por ver si es ese el problema.
Toda la información que necesitéis la pedís, no hay problema, es por no extenderme mucho ya que los mensajes largos a mí me asustan.
Un slaudo.
Responder Con Cita
  #4  
Antiguo 26-11-2012
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.669
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Yo nunca he necesitado usar merge ni matched, seguramente puedas hacerlo de otra forma.
Es más, es que ni siquiera sabía de la existencia de ellos.
Aunque tampoco debería ser motivo de lentitud la primera vez.
Responder Con Cita
  #5  
Antiguo 26-11-2012
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.939
Poder: 27
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Cita:
Empezado por ARPE1 Ver Mensaje
Hola y gracias por el interés.
La BD ya tiene extensión FDB. El producto cartesiano puro y duro, en este caso, es obligado.
Siempre hay mas de 1 manera de resolver un problema. Si nos cuentas cual es el problema, pones ejemplos con datos, quizas te podamos dar una luz.

El porque la 1era vez es lento y luego rapido me parece obvio. Al principio la tabla de destino esta "vacia", luega la llenas, luego al repetir ya esta llena y solo copia los registros faltantes. El filtro de la consulta hace todo rapido.

Lo que no entiendo, es porque hay que preocuparse al siguiente dia por esto. Siempre la tabla de destino esta "vacia" al arrancar???
__________________
El malabarista.
Responder Con Cita
  #6  
Antiguo 27-11-2012
ARPE1 ARPE1 is offline
Miembro
 
Registrado: nov 2012
Posts: 43
Poder: 0
ARPE1 Va por buen camino
Hola
Cita:
Empezado por mamcx Ver Mensaje
Lo que no entiendo, es porque hay que preocuparse al siguiente dia por esto. Siempre la tabla de destino esta "vacia" al arrancar???
Ahí está el misterio, nunca la tabla Artal (Artículo-Almacén) está vacía. Como mucho, y como ya os comenté, se pueden dar de alta 1 ó 2 registros. Más misterio todavía es que recién arrancado el equipo si hago un Backup/restore la consulta se resuelve en un abrir y cerrar de ojos.
Tuve un profe en EGB que nunca ponía un 10, decía que siempre hay más caminos y que seguro que hay otro mejor. El producto cartesiano que tanto nos preocupa no es el problema, ese producto, incluso sin condiciones que filtren las tablas, lo resuelve en milisegundos (con fetch all).
Por cierto lo probé en un FB2.5.2 64bits en modo superClassic y... lo mismo.
Sigo con que es problema de caché, ¿de Windows?, . Casimiro, estoy contigo, posiblemente en un Linux "pelao" la cosa cambie, de hecho lo probaré por curiosidad.

Un saludo y no me harto de agradeceros vuestro interés, muchas gracias
Responder Con Cita
  #7  
Antiguo 27-11-2012
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.669
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Cita:
Empezado por ARPE1 Ver Mensaje
... recién arrancado el equipo si hago un Backup/restore la consulta se resuelve en un abrir y cerrar de ojos.
¿Y si no está recien arrancado el equipo, si haces un backup/restore también va rápido la primera vez?
Responder Con Cita
  #8  
Antiguo 27-11-2012
ARPE1 ARPE1 is offline
Miembro
 
Registrado: nov 2012
Posts: 43
Poder: 0
ARPE1 Va por buen camino
Hola, así es, en el momento que hago un backup/restore o ejecuto una vez la consulta va como la seda.
Mi última prueba va a ser con un OpenSUSE y salga lo que salga ahí terminaré. Os cuento resultados.
un saludo.
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
aplicación lenta Celta Varios 2 13-01-2012 13:42:19
Conexion Con Interbase/FireBIrd lenta...muy lenta federiconqn21 Firebird e Interbase 3 11-03-2010 13:13:34
Aplicacion lenta aanil OOP 4 26-01-2010 15:11:39
Ayuda con consulta lenta, lenta, lenta Gregory Mazon Firebird e Interbase 22 27-06-2007 09:56:38
Impresion lenta, muy lenta... Perio Impresión 2 20-05-2005 13:10:00


La franja horaria es GMT +2. Ahora son las 04:37:44.


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