La idea de este grupo es compartir y armar entre todos una lista de tips o buenas prácticas sobre performance y tuning.
Miembros: 129
Última actividad: Abr 2
Por ejemplo, tengo la siguiente lista:
¿Que opinan de ellas? ¿se les ocurre alguna más?
Saludos Cordiales.
Iniciada por Fernando Garcia. Última respuesta de Edgar J. Guzman M. Sep 27, 2012. 16 Respuestas 1 Me gusta
Tomando como punto de partida el primer tip publicado en la lista de Pablo Larraz: "Las condiciones (tanto de filtro como de join) deben ir siempre en el orden en que esté definido el índice. Si no…Continuar
Iniciada por Fernando Garcia Oct 10, 2011. 0 Respuestas 1 Me gusta
Me parece muy interesante la aparicion de este grupo. Es un lugar propicio para debatir ideas.Propongo poner a prueba a cada uno de los tips publicados y corroborarlos a fin de poder llegar a la…Continuar
Buenisimo el grupo! FELICITACIONES Pablo! hago mi humilde aporte:
**Siempre comenzar por la tabla DRIVING si especificamos el hint ORDERED, ya que esta tabla tiene pocas filas, y a partir de ella podemos hacer JOIN a tablas mas grandes, a traves de indices.
**Siguiendo el tip anterior, si tenemos una tabla DRIVING pequeña, y accedemos a otra tabla grande por indice, seria conveniente elegir como metodo de acceso a USE_NL o use nested loop, de esta manera, por cada fila de la tabla driving, buscamos por indice en la tabla grande.
**Si accedemos a una tabla particionada y el campo de particion forma parte del where, pero se le aplica alguna operacion como TRUNC, se realizara un FULL SCAN a toda la tabla quedando desactivado el metodo de acceso por particion.
Comentario de Marcelo Burgos el octubre 10, 2011 a las 10:09pm Hola a todos
Gisela, ¿what is la tabla driving? ¿me perdí de algo o se te mezcló algo del mysql?
Me parece que me estoy poniendo un poco duro para entender cosas avanzadas, y quizá sea tiempo por evaluar dedicarme a otra profesión en que haya que usar menos la cabeza
No, por ahora insistiré con Databases, así que trátenme con delicadeza y no me abrumen demasiado
¡Saludos!
Jeje, la tabla DRIVING es la tabla que conduce la consulta, por ejemplo, si tienes que obtener un reporte de las ventas del ultimo año de los productos que no cuestan mas de 5$, la tabla que conduce seria PRODUCTOS, ya que vamos a filtrar por precio, con lo cual nos quedaríamos con un conjunto restringido, y luego con ese set de resultados buscamos las ventas.
Haber elegido a la tabla ventas como tabla driving en vez de productos, haría que la consulta sea mas costosa.
Espero se haya entendido! Y si no es asi pruebo con ejemplos de sql.
Saludos, Gisela
Comentario de Luis Fernando Molina el octubre 10, 2011 a las 10:30pm Gisela y en el caso de escoger Ventas por que sería más costoso ?
No sería parecido ?
No, en el orden inverso se haria un full scan en toda la tabla ventas.
Supongamos que tenemos10.000 ventas, 1000 productos y solo 13 cumplen la condición de costar menos de 5$, las ventas estimadas de cada uno son entre 10 y 20, es decir, que en la tabla ventas, nos encontraríamos con 130 a 260 ventas correspondientes a estos productos.
Si primero accedemos a productos, la búsqueda sobre ventas, podria efectuarse por un indice (indizando por código de producto), accediendo a un 1.3 / 2.6% de la tabla ventas.
Pero si elegimos la tabla ventas como DRIVING, sin contar con la informacion de los productos a buscar, no nos queda mas remedio que acceder al 100% de la tabla.
Alguno se imagino leer todo un libro para buscar un capitulo especifico y conocido sin pasar antes por el indice? Claro esta, que si no tenemos información del capitulo, no nos queda otra que leer el libro completo...
Comentario de Luis Fernando Molina el octubre 10, 2011 a las 11:21pm Claro, sobre productos puede hacer full o no, dependiendo de los indices que tenga, el tema clave esta sobre la tabla mas pesada que es ventas.
Cuando tenemos una consulta para mejorar, lo primordial es identificar la tabla driving, y lo podemos hacer conociendo el peso de cada tabla, los indices que tiene, y que condiciones del where achican considerablemente el set de resultados.
Comentario de Luis Fernando Molina el octubre 10, 2011 a las 11:25pm Ah jeje no hay problema Luis, la idea es compartir y generar este tipo de debates.
Saludos!
Comentario
Bienvenido a
Comunidad Oracle Hispana
© 2013 Creado por Fernando Garcia.
¡Tienes que ser miembro de Tips de Performance y Tuning para agregar comentarios!