Como mejorar consulta

19/04/2004 - 22:27 por Sergio | Informe spam
Esta es una consulta que realizo para generar un reporte, la verdad que esto
soluciona solo para una cantidad de registros, pero cuando tengo alrededor
de 50.000 registros lo hace lento, alguien podria ayudarme para mejorar esta
consulta
o estoy utilizando algo mal, o necesitare otras sentencias:

select asientodiario_cab.codigo as
codigocabecera,asientodiario_det.fecha,plandecuentas.nombre as
nombrecuenta,plandecuentas.codigo as cuenta,
asientodiario_det.debe,asientodiario_det.haber,asientodiario_det.detalle,
asientodiario_det.moneda,asientodiario_det.cotizacion

from asientodiario_cab, plandecuentas, asientodiario_det

where asientodiario_cab.codempresa = @codempresa
and asientodiario_det.fecha >= @fechadesde and asientodiario_det.fecha <@fechahasta
and asientodiario_cab.codigo >= @codigodesde And asientodiario_cab.codigo
<= @codigohasta
and asientodiario_cab.codempresa = asientodiario_det.codempresa
and asientodiario_cab.codigo = asientodiario_det.codigo
and plandecuentas.cod_empresa = asientodiario_det.codempresa
and plandecuentas.codigo = asientodiario_det.cuenta

order by codigocabecera, asientodiario_det.fecha

Gracias
 

Leer las respuestas

#1 Marcelo W. Lopez Cremona
19/04/2004 - 21:25 | Informe spam
Hola, prueba usando esta consulta

SELECT a.codigo as codigocabecera, ad.fecha, p.nombre as nombrecuenta,
p.codigo as cuenta, ad.debe, ad.haber, ad.detalle,
ad.moneda, ad.cotizacion
FROM asientoDiario_Cab a
INNER JOIN asientoDiario_det ad ON ad.codigo = a.codigo and
a.codEmpresa=ad.codEmpresa and ad.fecha between @fechadesde and @fechaHasta
INNER JOIN plandeCuentas p ON p.codEmpresa = d.codEmpresa and p.codigo ad.cuenta
WHERE a.codEmpresa = @codEmpresa and a.codigo between @codigoDesde and
@codigoHasta
ORDER BY codigoCabecera, ad.fecha

Recomendación: trata de usar INNER JOIN
suerte. y espero q te sirva.

Marcelo W. López
Tucumán - Argentina



"Sergio" escribió en el mensaje
news:
Esta es una consulta que realizo para generar un reporte, la verdad que


esto
soluciona solo para una cantidad de registros, pero cuando tengo alrededor
de 50.000 registros lo hace lento, alguien podria ayudarme para mejorar


esta
consulta
o estoy utilizando algo mal, o necesitare otras sentencias:

select asientodiario_cab.codigo as
codigocabecera,asientodiario_det.fecha,plandecuentas.nombre as
nombrecuenta,plandecuentas.codigo as cuenta,
asientodiario_det.debe,asientodiario_det.haber,asientodiario_det.detalle,
asientodiario_det.moneda,asientodiario_det.cotizacion

from asientodiario_cab, plandecuentas, asientodiario_det

where asientodiario_cab.codempresa = @codempresa
and asientodiario_det.fecha >= @fechadesde and asientodiario_det.fecha <> @fechahasta
and asientodiario_cab.codigo >= @codigodesde And


asientodiario_cab.codigo
<= @codigohasta
and asientodiario_cab.codempresa = asientodiario_det.codempresa
and asientodiario_cab.codigo = asientodiario_det.codigo
and plandecuentas.cod_empresa = asientodiario_det.codempresa
and plandecuentas.codigo = asientodiario_det.cuenta

order by codigocabecera, asientodiario_det.fecha

Gracias



Preguntas similares