Oracle - ¿Estoy usando los indices?

 
Vista:

¿Estoy usando los indices?

Publicado por sergio (19 intervenciones) el 10/07/2002 04:43:34
He creado unos índices sobre dos campos numéricos:(contador,codigo_sri)
las consultas que hagto sobre esta tabla son de tipo
select algo
from mi_tabla
where contador*10000000+codigo_sri = pn_num
, donde pn_num es un valor numérico cualquiera, ¿estoy usando mi índice?, o bien debiera crear un índice basado en función, donde la función recibiría como parámetros contador y codigo_sri y devolviera la operación aritmética que estoy ejecutando, me quedaría entonces así
select algo
from mi_tabla
where mi_funcion(contador,codigo_sri) = pn_number

¿o es suficiente con crear un índice sobre contador y codigo_sri?, (ya que son los únicos implicados en mi operación aritmética)
gracias a quien me quite esta duda,
Sergio
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:¿Estoy usando los indices?

Publicado por ARturo T (69 intervenciones) el 10/07/2002 15:25:55
La ejecucion de as sentencias que ud esta definiendo no utilizan el indice creado, sino que hace un full scan sobre la tabla, si crea la funcion tambien haria lo mismo.

No utiliza el indice
where contador*10000000+codigo_sri = pn_num

Si Utiliza el indice
where codigo_sri = pn_num -(contador*10000000)

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

RE:¿Estoy usando los indices?

Publicado por Arturo T (69 intervenciones) el 10/07/2002 15:43:55
Estoy evaluando nuevamente su indice..
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

RE:¿Estoy usando los indices?

Publicado por Harold (697 intervenciones) el 10/07/2002 17:40:44
Depende del optimizador y a como tengas configurada la BD (CBO, RBO). antes de ejecutar la consulta has lo siguiente:
1. Desde SQL antes de ejecutar la consulta pon lo siguiente:
set autotrace traceonly explain
2. luego ejecuta la consulta.
Esa orden te dara el plan de ejecucion que tomara el optimizador y te daras cuenta que es lo que de verdad hace. Luego le das set autotrace off para quitar el trace a las consultas.

Saludes

Harold
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