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 Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #23  
Antiguo 10-08-2010
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 26
guillotmarc Va por buen camino
Cita:
Empezado por Choclito Ver Mensaje
Disculpen por responder tarde, probe lo que dice el amigo guillotmarc y el IB plananalyzer me dice que las tres tablas estan indexadas, ahora probare con el resto de mis consultas .
Sobre la condicion del where es lo mismo
(r.fecha between :f1 and :f2 + 1 and r.fecha <> :f2 + 1) por esto (cast(r.fecha as date) between :f1 and :f2) se tiene que sumar siempre mas 1 osea f2+1 ??
Solo quisiera una explicacion asi de ese modo me evito de utilizar la funcion cast .
Yo lo realizaba porq el campo fecha es timestamp mientras en las consultas solo me importan de un rango de fechas determinado
Muchas gracias por la respuesta

Que el IB plananlyzer te diga que se va a utilizar un índice no quiere decir que vaya a ir rápido obligatoriamente. Puesto que el motor puede utilizar algún índice disponible que acelere un poco la consulta (aunque por ejemplo bajar de 10 minutos a 4 minutos, normalmente no es de ninguna ayuda), y lo que necesitas es dar de alta un índice nuevo sobre un campo concreto, que es el que permitirá al motor acelerar de forma óptima la consulta y que se ejecute en algunos segundos. Así que no solo tienes que mirar que se utilice algún índice, también tienes que mirar que ese índice realmente sea óptimo para la consulta o bien si necesitas crear uno nuevo más adecuado.

Respecto a las consultas de fechas, el +1 hay que ponerlo dependiendo de lo que tengas guardado en la base de datos. El campo es de tipo timestamp, pero no sabemos si en tu programas guardas la parte de hora de las fechas o no lo haces.

Si guardas en la base de datos la parte de hora, entonces un registro que tenga guardado, por ejemplo, : 12-4-2010 17:25 no aparecerá en una consulta que sea BETWEEN 10-4-2010 y 12-4-2010, ya que 12-4-2010 17:25 es mayor que 12-4-2010 (si no pones nada, es a las 00:00).
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
 



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
Firebird, tarda mucho en conectar a base de datos en red sonjeux Conexión con bases de datos 1 09-04-2009 08:29:40
rewrite tarda si no hay red jonmendi OOP 0 25-09-2008 10:03:23
Ayuda Urgente, Por favor. Tarda mucho en traer los datos. Paradiso Firebird e Interbase 25 31-05-2007 04:02:37
Form que se tarda mucho en abrir IVAND Varios 3 29-05-2007 02:14:07
Por que tarda mucho en abrir un EXE IcebergDelphi Varios 5 16-06-2004 11:05:28


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


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