Club Delphi  
    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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-06-2007
Gregory Mazon Gregory Mazon is offline
Miembro
 
Registrado: jun 2003
Posts: 22
Poder: 0
Gregory Mazon Va por buen camino
Gracias, con el Left me muestra lo siguiente:
Código:
Plan:
PLAN SORT (JOIN (DR DR NATURAL,DR REM INDEX (RDB$PRIMARY16)))

Plan Adaptado:
PLAN SORT (JOIN (DR DR NATURAL,DR REM INDEX (PK_REMISION)))
quitandole el Left me muestra lo siguiente:
Código:
Plan:
PLAN SORT (JOIN (DR REM INDEX (REMISION_IDX1),DR DR INDEX (RDB$PRIMARY28)))

Plan Adaptado:
PLAN SORT (JOIN (DR REM INDEX (REMISION_IDX1),DR DR INDEX (PK_DE_REM)))
con la primer opcion la consulta se tarda 8 minutos, con la segunda opcion la misma consulta se tarda 4 minutos
Responder Con Cita
  #2  
Antiguo 26-06-2007
Delfino Delfino is offline
Miembro
 
Registrado: jul 2003
Ubicación: Madrid
Posts: 974
Poder: 21
Delfino Va por buen camino
Porque en la tabla maestro la clave primaria esta compuesta por dos campos? estas cosas se hacian en tiempos de los dbf,

Se agilizara bastante pero bastante la ejecucion de la query si le pones una clave primaria compuesta por un solo campo ID, y el join se haga por un solo campo, tb creando un indice sobre algun campo de la select, el campo cantidad por ejemplo.

Por cierto, el uso de between no se diferencia en nada a la otra forma, pq internamente el motor se encarga de traducirla, pero between es mejor legible en una consulta..
__________________
¿Microsoft? No, gracias..

Última edición por Delfino fecha: 26-06-2007 a las 10:23:23.
Responder Con Cita
  #3  
Antiguo 26-06-2007
seara2005 seara2005 is offline
Miembro
 
Registrado: ago 2003
Ubicación: Colombia
Posts: 63
Poder: 21
seara2005 Va por buen camino
Ayuda con consulta lenta

Yo no soy experto en estas materias, pero la lógica y mi criterio me dicen que si hoy estas analizando como reducir de 8 a 4 o 3 min la consulta, en un año estarás viendo como reducirla de 20 a 10, etc. por tanto te recomendaría que acotaras la información a procesar para las consultas frecuentes, por ejemplo yo incluiría un campo Inicial por cada información que se necesite de forma tal que al pasar de un mes a otro, el sistema actualice un acumulado hasta ese cierre en este campo y las consultas siguientes estarían acotadas a ese saldo mas los movimientos del mes actual. Así el rendimiento del sistema prácticamente no mermaría con el paso del tiempo ya que las consultas siempre son de operaciones de un mes.
El cierre y asignación de saldos iniciales del mes se hace una sola vez en el período así que no es un problema crítico.
__________________
Saludos

Seara2005
Responder Con Cita
  #4  
Antiguo 27-06-2007
Gregory Mazon Gregory Mazon is offline
Miembro
 
Registrado: jun 2003
Posts: 22
Poder: 0
Gregory Mazon Va por buen camino
Cita:
Empezado por Delfino
Porque en la tabla maestro la clave primaria esta compuesta por dos campos? estas cosas se hacian en tiempos de los dbf,
La razon es por que el sistema esta instalado en sucursales remotas, cada una con su propia BD y a determinado tiempo se replica la informacion a la BD del server, cada una de las sucursales tiene su propio IDTIENDA y para que nota de venta tengo su respectivo ID, por eso la clave compuesta

Cita:
Empezado por seara2005
Yo no soy experto en estas materias, pero la lógica y mi criterio me dicen que si hoy estas analizando como reducir de 8 a 4 o 3 min la consulta, en un año estarás viendo como reducirla de 20 a 10, etc. por tanto te recomendaría que acotaras la información a procesar para las consultas frecuentes
aqui el problema es que no existen consultas frecuentes, sino que las consultas pueden ser dia vs. dia, mes vs. mes, semana vs. semana, como al gerente de ventas se le ocurra, no puedo poner un saldo inicial o saldo final. ahorita lo que estan comprarando es mes vs. mes. (ej. 15/May/07 vs. 15/Jun/07)

Haciendo otra prueba a la tabla detalle le meti el campo FECHA que es el que tengo en la tabla maestro y por medio del cual estoy haciendo el WHERE.
Al hacer mi consulta esta forma me resulta en solo 30 segundos. Aqui es en donde tengo mi problema, pero entonces de que forma deberia de hacer mi consulta?, o para que mis consultas sean rapidas debo de incluir en las tablas de detalle los campos del maestro para no tener que hacer join's?, o cual es la manera de realizar una consulta detalle-maestro?
Responder Con Cita
  #5  
Antiguo 27-06-2007
Gregory Mazon Gregory Mazon is offline
Miembro
 
Registrado: jun 2003
Posts: 22
Poder: 0
Gregory Mazon Va por buen camino
Ya quedo

Muchas gracias, a todos los que leyeron este hilo y en especial a los que me aconsejaron

Despues de estarme peleando con esta consulta, resulta que mi GRAN ERROR estaba en la vista, todo quedo resuelto con una simple y sencilla consulta:

Código SQL [-]
Select d.idArticulo, sum(d.cantidad) pzas,
sum(d.cantidad * (d.precio * (1 - (100-(100 * (100-d.Descuento)/100) * (100-R.Descuento)/100) /100))) vta,
sum(d.cantidad * d.costo) cto
from de_rem d
join remision r on r.idtienda = d.idTienda and r.idRemision = d.idRemision
Where (r.Fecha between :wDate1 and :wDate2) and r.activo = 1
group by d.idArticulo

mi consulta me muestra resultados con solo 40 segundos, listo me ahora si me voy a descansar, pero antes de eso vuelvo a reinterar GRACIAS
Responder Con Cita
  #6  
Antiguo 27-06-2007
Delfino Delfino is offline
Miembro
 
Registrado: jul 2003
Ubicación: Madrid
Posts: 974
Poder: 21
Delfino Va por buen camino
Cita:
debo de incluir en las tablas de detalle los campos del maestro para no tener que hacer join's?
Para eso se invento el modelo entidad/relacion, para no tener q repetir informacion en mas de un sitio, los joins son instantaneos si la consulta esta bien hecha y indexada aunque sea sobre millones de registros,
Cita:
resulta que mi GRAN ERROR estaba en la vista,
Era evidente, me extraña q nadie de nosotros se diera cuenta, ahora el optimizador hace q se ejecute rapido, se ejecutaria igual de rapido aunque vaya incrementandose el numero de registros..
__________________
¿Microsoft? No, 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
Consulta Super Lenta AGAG4 SQL 4 03-04-2006 19:36:50
Primera consulta, mas lenta que el caballo del malo papulo Conexión con bases de datos 20 23-09-2005 13:46:24
Impresion lenta, muy lenta... Perio Impresión 2 20-05-2005 13:10:00
Consulta muy lenta Walterdf Conexión con bases de datos 2 25-08-2004 18:37:57
lenta la consulta. digital Conexión con bases de datos 2 10-09-2003 15:38:13


La franja horaria es GMT +2. Ahora son las 05:07:12.


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