FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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? |
#2
|
||||
|
||||
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 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. |
#3
|
||||
|
||||
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. |
#4
|
|||
|
|||
Hola también puedes crear indices, para agilizar el proceso
saludos cordiales.
__________________
"La información tiene más valor cuando se comparte" |
#5
|
||||
|
||||
Cita:
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 |
#6
|
|||
|
|||
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. |
|
|
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 |
|