Optimizacion de Querys

Quisiera saber si alguien me puede decir como puedo optimizar el tiempo de ejecución de un Query, ya que ejecuto un Query donde tengo varias relaciones de diferentes tablas (como 10 tablas) pero el problema consiste en que el tiempo de ejecución de este query es demasiado largo, tarda aproximadamente 45-50 minutos.
Si tienes un comentario o alguna idea del porque de este problema te agradecería que me dijeras, gracias.
Atentamente: Sergio Silva

1 respuesta

Respuesta
1
Te cuento de mi experiencia en Oracle pero creo que todas las bases trabajan similar.
De alguna forma tenés que realizar un trace, o sea, cómo y qué elementos utiliza el motor de base de datos para resolver la consulta.
Si son simples join o condiciones con constantes, seguramente se optimiza creando los índices apropiados sobre los campos de las tablas que intervienen en el where de la consulta. Ojo, estudiar cual índice es el más óptimo, si llenas de índices, el motor no los va a usar todos y vas a desperdiciar mucho espacio de almacenamiento.
Trata de que el trace no muestro access full a tablas con gran volumen de datos.
Normalmente detectando que indices hace falta ya está, otras veces tenés que obligar al motor a que los uses porque el decide que no los necesita... esto sólo es recomendable como último recurso. (select /*+ hint */ campos from tablas.... )
Y los hint son muy variados. (FIRSTROWS, RULE, INDEX, etc.)
Pero insisto el motor con algunos indices bien puestos ya se la arregla para pasar de min. y horas a segundos o menos.
Muchas gracias por la respuesta que me diste, me ha sido de gran utilidad y la verdad es que si me estaba afectando un indice, muchas gracias por todo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas