Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-02-2013
santi33a santi33a is offline
Miembro
 
Registrado: jun 2005
Posts: 208
Poder: 19
santi33a Va por buen camino
Dudas con "distinct"

Hola a todos, tengo una consulta que solo me devuelve 3 registros pero
se me demora alrededor de 3 min, la consulta en si es:
Código SQL [-]
select distinct idregdocum, nombrelargo
from fin_documento d
inner join  fin_regdocum r on r.idregdocum = d.idregdoc
inner join fin_obligacion o on d.iddocumento = o.iddocumento
where r.ingresoegreso = -1

sin embargo si le quito el "distinct" entonces me devuelve alrededor
de 33000 registros pero me los devuelve al instante, que debo hacer
para que con "distinct" me lo devuelva mas rápido?

fin_documento tiene como clave primaria iddocumento y un indice sobre el campo idregdoc y tiene alrededor de 60000 registros.
fin_obligacion tiene como clave primaria iddocumento y tiene alrededor de 30000 registros
fin_regdocum solo tiene 31 registros.

Gracias
Santiago
Responder Con Cita
  #2  
Antiguo 25-02-2013
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Hola Santiago.

Pareciera que sólo hace falta crear un índice sobre el campo nombrelargo, o bien un índice compuesto sobre los campos idregdocum y nombrelargo.
Responder Con Cita
  #3  
Antiguo 26-02-2013
santi33a santi33a is offline
Miembro
 
Registrado: jun 2005
Posts: 208
Poder: 19
santi33a Va por buen camino
Hola Al González, en la tabla fin_regdocum idregdocum el la clave primaria, pero ademas como te dije esa tabla solo tiene 31 registros, por lo que hace innecesario a mi modo de ver nuevos indices, claro por si las moscas cree el indice compuesto que me dijiste y todo sigue igual.
Santiago
Responder Con Cita
  #4  
Antiguo 26-02-2013
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Entiendo. Entonces, quizá, el índice que falta es sobre ingresoegreso. Y claro, aquellos campos que hacen relación con otras tablas deben tener su respectivo índice de llave exterior.

Por cierto, ¿qué motor de base de datos utilizas y dónde realizas las pruebas de tiempo? Puede que esos
"33000 registros al instante" sólo sea la primera página de muchas más.

Saludos.
Responder Con Cita
  #5  
Antiguo 26-02-2013
santi33a santi33a is offline
Miembro
 
Registrado: jun 2005
Posts: 208
Poder: 19
santi33a Va por buen camino
uso SQL Server 2000 sp4, y el campo ingresoegreso pertenece a la tabla fin_regdocum que como te dije solo tiene 31 registro, por lo q no debe ser necesario indice.
Gracias. Santiago
Responder Con Cita
  #6  
Antiguo 01-03-2013
santi33a santi33a is offline
Miembro
 
Registrado: jun 2005
Posts: 208
Poder: 19
santi33a Va por buen camino
Bueno gracias a todos les contaré que la solución fue convertir la llave principal de la tabla fin_documento (iddocumento) en un indice agrupado, solo con eso el resultado me salió casi inmediatamente.
Gracias
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
"Me Gusta", "Compartir", "Gracias" movorack La Taberna 4 24-10-2010 14:45:59
El programa se queda "colgado" mientras copia y luego "despierta" NeWsP OOP 5 10-03-2010 22:05:40
"OBJECT OR CLASS TYPE REQUIRED" en "APPLICATION EXENAME" Xavierator Varios 3 27-10-2008 09:09:50
Necesito llamar a métodos de clases "hija" desde su clase "padre" Flecha OOP 17 20-04-2007 00:03:53
"ChequeaEsto" elegido el futuro "Killer CLubDelphi" mamcx Noticias 51 31-10-2006 20:56:32


La franja horaria es GMT +2. Ahora son las 20:39:52.


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