Oracle - como crear indices sobre el siguiente select

 
Vista:

como crear indices sobre el siguiente select

Publicado por GOYA (89 intervenciones) el 29/05/2008 18:00:50
Hola: tengo la siguiente consulta, al revisar por toad esta consulta me doy cuenta que es un access full, para eviat esto necesito crear un indice, pero este indice seria sobre las tres tables, como puedo realizar esto?

SELECT tipo_movimiento tm, nro_documento nodoc,
NVL (LTRIM (nro_factura_cliente, ' '), f.nro_factura) nro_facturain,
df.nro_referencia, r.descripcion, df.cantidad cantidad_solic,
df.cant_despacho cant_despacho
FROM factura_cliente f, detalle_factura df, referencia r
WHERE ( r.nro_referencia = df.nro_referencia
AND r.nro_cliente = df.nro_cliente
AND df.nro_factura = f.nro_factura
AND df.nro_cliente = f.nro_cliente
AND NVL (df.cant_despacho, 0) != NVL (df.cantidad, 0)
)
AND (:nro_documento = f.nro_documento)
AND (:tipo_movimiento = f.tipo_movimiento)

Muchas gracias a quien me pueda colaborar
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:como crear indices sobre el siguiente select

Publicado por Pedro (25 intervenciones) el 30/05/2008 09:50:22
Hola buenos dias:

Realmente por la información que das, (sin saber a que tabla esta haciendote el full), en un principio si tienes las primary keys bien creadas y las foreing keys bien creadas por al tabla detalle_factura y referencia debería entrarte con nested_loops por estas mismas,
sin embargo a la tabla facturas las variables de consulta que utilizas es nro_documento y tipo_movimiento, en todo caso se crearia un indice por estos dos campos, para que entrara primero al indice, y luego accediera a las otras tablas como he dicho antes con nested_loops

Esta es la informacion q te puedo proporcionar con los datos que ofreces, si tienes alguna duda o no es lo que tu necesitabas hacer no dudes en preguntar

Un saludo

PD El parentesis de despues del where no es necesario
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar