Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-12-2007
kourgan kourgan is offline
Registrado
 
Registrado: dic 2007
Posts: 4
Poder: 0
kourgan Va por buen camino
mejorar el tiempo de consulta

hola,
Estoy realizando un programa de gestion de una base de datos. Tengo una consulta que tarda demasiado en realizarse:
"Select distinct * from H, S, P, A, X where
P.codarea=A.codarea and
P.codsector=A.codsector and A.codsector=X.codsector and P.codproyecto=S.codproyecto and P.codproyecto=H.codproyecto and H.codproyecto=S.codproyecto AND
H.codsubpro=S.codsubpro AND
H.USUARIO = '" + frmEntrada->cmbNombrePersona->Text + "' AND
H.FECHA >= '" + fechaInferior + "' AND
H.FECHA <= '" + fechaSuperior + "' ORDER BY H.FECHA DESC";

He pensado en crear una tabla puente con las condiciones y luego usar esta nueva tabla para implementar las condiciones de mi consulta, pero la verdad es que no tengo muy claro como hacerlo. ¿Alguna sugerencia?
Responder Con Cita
  #2  
Antiguo 20-12-2007
Avatar de Gabo
[Gabo] Gabo is offline
Miembro Premium
 
Registrado: mar 2007
Ubicación: Murcia (España)
Posts: 684
Poder: 18
Gabo Va por buen camino
Hola kourgan,

¡¡¡¡bienvenido al foro!!!

Una primera sugerencia es que uses las etiquetas (en este caso las SQL) para que el código se vea más ordenado y sea más fácil de leer y entender. Sobre el uso de etiquetas te puedes informar aquí.

Otra cosa, te recomiendo que en vez de hacer todo esto:

Código:
from H, S, P, A, X where 
P.codarea=A.codarea and 
P.codsector=A.codsector and A.codsector=X.codsector and P.codproyecto=S.codproyecto and P.codproyecto=H.codproyecto and H.codproyecto=S.codproyecto AND 
H.codsubpro=S.codsubpro AND
utilices JOIN. En el foro encontrarás mucha información sobre su uso.

Y lo último, ¿realmente necesitas obtener todos los campos (*)? Honestamente, no sé cuánto pueda tener que ver en la demora el DISTINCT *, pero me da por pensar que tienen mucho que ver también.


PS Sobre las etiquetas SQL, no las encontré yo tampoco, así que imagino que estarán temporalmente fuera de servicio.
__________________
Saludos,
Gabo

A menos que se indique lo contrario, el código estará hecho en C++Builder.
Responder Con Cita
  #3  
Antiguo 20-12-2007
Avatar de Gabo
[Gabo] Gabo is offline
Miembro Premium
 
Registrado: mar 2007
Ubicación: Murcia (España)
Posts: 684
Poder: 18
Gabo Va por buen camino
Por cierto, podrías indicar la estructura de las tablas, asi te podríamos ayudar mejor. Hay algo ahí que no veo claro...
__________________
Saludos,
Gabo

A menos que se indique lo contrario, el código estará hecho en C++Builder.
Responder Con Cita
  #4  
Antiguo 20-12-2007
[fer21unmsm] fer21unmsm is offline
Miembro Premium
 
Registrado: dic 2005
Ubicación: Lima
Posts: 627
Poder: 19
fer21unmsm Va por buen camino
Hola también puedes crear indices, para agilizar el proceso

saludos cordiales.
__________________
"La información tiene más valor cuando se comparte"
Responder Con Cita
  #5  
Antiguo 20-12-2007
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Cita:
Empezado por Gabo Ver Mensaje
PS Sobre las etiquetas SQL, no las encontré yo tampoco, así que imagino que estarán temporalmente fuera de servicio.
si lo están, debido a que Emilio ha aplicado una actualización sobre el sistema de foros, y esas "personalizaciones" realizadas especialmente por y para el club llevan su tiempo.

Pronto tendremos de vuelta a [sql] y [delphi]

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #6  
Antiguo 03-01-2008
kourgan kourgan is offline
Registrado
 
Registrado: dic 2007
Posts: 4
Poder: 0
kourgan Va por buen camino
Hola, gracias por vuestra ayuda.
Sobre lo de crear índices, ¿tendría que crear uno por cada tabla, verdad?¿que tipo de índices serían? Como tengo condiciones sobre varios campos de las tablas no lo tengo muy claro.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Tiempo de espera de recursos de memoria excedio al ejecutar la consulta look MS SQL Server 2 08-12-2007 19:33:00
Error en Consulta de tablas creadas en tiempo de ejecucion javicho_villa Varios 1 02-02-2006 17:14:28
Mejorar metodo!! kye_z Varios 2 21-10-2004 18:56:53
Creando consulta en tiempo de ejcución marto .NET 2 20-08-2004 12:26:27
Dar tiempo de respuesta a una consulta Eolo Conexión con bases de datos 2 19-02-2004 15:30:15


La franja horaria es GMT +2. Ahora son las 22:28:10.


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