Optimizar función
Publicado por Angel (2 intervenciones) el 20/11/2008 13:09:22
Buenas a todos, estoy empezando a optimizar funciones sql que acceden a tablas con millones de registros y la verdad es que me está costando bastante. Una de ellas es la siguiente:
SELECT sum(CUERPO_PEDIDO_CLIENTE.Dpc_Cantidad)
INTO lv_cajas
FROM cabecera_pedido_cliente, cuerpo_pedido_cliente
WHERE
cabecera_pedido_cliente.cpm_empresa = cuerpo_pedido_cliente.dpc_empresa and
cabecera_pedido_cliente.cpm_contabilidad = cuerpo_pedido_cliente.dpc_contabilidad and
cabecera_pedido_cliente.cpm_cliente = cuerpo_pedido_cliente.dpc_cliente and
cabecera_pedido_cliente.cpm_numero_pedido = cuerpo_pedido_cliente.dpc_numero_pedido and
cabecera_pedido_cliente.cpm_numero_bis = cuerpo_pedido_cliente.dpc_numero_bis and
((cuerpo_pedido_cliente.dpc_estado_pedido >=6 and cabecera_pedido_cliente.cpm_pedido_cargo_abono = 'P') or
(cabecera_pedido_cliente.cpm_pedido_cargo_abono <> 'P'))and
( cuerpo_pedido_cliente.dpc_ubicacion = AS_UBICACION OR AS_UBICACION IS NULL) and
(cuerpo_pedido_cliente.dpc_articulo = AS_ARTICULO or AS_ARTICULO IS NULL) and
( cabecera_pedido_cliente.cpm_cliente = AN_CLIENTE or AN_CLIENTE IS NULL) and
( cabecera_pedido_cliente.cpm_sucursal_envio = AN_SUCURSAL or AN_SUCURSAL IS NULL) and
cabecera_pedido_cliente.cpm_empresa = AN_EMPRESA and
cuerpo_pedido_cliente.dpc_almacen = AS_ALMACEN and
cabecera_pedido_cliente.cpm_contabilidad = 0 and
TRUNC(cuerpo_pedido_cliente.dpc_fecha_albaran) >= ad_fechaini and
TRUNC(cuerpo_pedido_cliente.dpc_fecha_albaran) <= ad_fechafin;
Alguna sugerencia?
Gracias de antemano.
SELECT sum(CUERPO_PEDIDO_CLIENTE.Dpc_Cantidad)
INTO lv_cajas
FROM cabecera_pedido_cliente, cuerpo_pedido_cliente
WHERE
cabecera_pedido_cliente.cpm_empresa = cuerpo_pedido_cliente.dpc_empresa and
cabecera_pedido_cliente.cpm_contabilidad = cuerpo_pedido_cliente.dpc_contabilidad and
cabecera_pedido_cliente.cpm_cliente = cuerpo_pedido_cliente.dpc_cliente and
cabecera_pedido_cliente.cpm_numero_pedido = cuerpo_pedido_cliente.dpc_numero_pedido and
cabecera_pedido_cliente.cpm_numero_bis = cuerpo_pedido_cliente.dpc_numero_bis and
((cuerpo_pedido_cliente.dpc_estado_pedido >=6 and cabecera_pedido_cliente.cpm_pedido_cargo_abono = 'P') or
(cabecera_pedido_cliente.cpm_pedido_cargo_abono <> 'P'))and
( cuerpo_pedido_cliente.dpc_ubicacion = AS_UBICACION OR AS_UBICACION IS NULL) and
(cuerpo_pedido_cliente.dpc_articulo = AS_ARTICULO or AS_ARTICULO IS NULL) and
( cabecera_pedido_cliente.cpm_cliente = AN_CLIENTE or AN_CLIENTE IS NULL) and
( cabecera_pedido_cliente.cpm_sucursal_envio = AN_SUCURSAL or AN_SUCURSAL IS NULL) and
cabecera_pedido_cliente.cpm_empresa = AN_EMPRESA and
cuerpo_pedido_cliente.dpc_almacen = AS_ALMACEN and
cabecera_pedido_cliente.cpm_contabilidad = 0 and
TRUNC(cuerpo_pedido_cliente.dpc_fecha_albaran) >= ad_fechaini and
TRUNC(cuerpo_pedido_cliente.dpc_fecha_albaran) <= ad_fechafin;
Alguna sugerencia?
Gracias de antemano.
Valora esta pregunta


0