miércoles, 17 de febrero de 2010

Simposio HOTSOS 2010



Todos los años, se realiza un evento llamado Simposio HOTSOS. Este evento esta exclusivamente dedicado a Oracle Performance Tuning.

El Simposio se realiza todos los años en el mes de Marzo en la ciudad de Dallas, Texas (USA). Esta conferencia es única a nivel mundial! Reune a los mejores expertos de Oracle del mundo!

El año pasado, tuve la oportunidad de poder viajar y presenciar el Simposio. Definitivamente se lo recomiendo a todas las personas que utilizan Oracle y que se especializan o que se encuentran interesadas en lo que respecta a Performance Tuning.


Este año (días 7 al 11 de Marzo) volveré a presenciar el Simposio! Nos vemos ahí!!!


Para más información: AQUI

7 comentarios:

Bruno dijo...

Que tal Leonardo?no encontre una dirección de correo a la cual comunicarme con vos asique te dejo el comentario aca.
Estoy empezando a administrar un par de bases Oracle y lo encuentro bastante interesante, pero la verdad es que me doy cuenta que estoy corto de conocimientos. Que curso me recomendarías que haga y en que institución? si sabes de alguno bueno e interesante por Buenos Aires me vendria bien la data.
Desde ya muchas gracias!
Saludos!
Bruno

Leonardo Horikian dijo...

Hola Bruno,

Si quieres hacer algun curso de Oracle presencia o a distancia, puedes hacerlo en Oracle University ( http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=405 )

Saludos

Diego Juarez dijo...

Hola Leonardo, Mi nombre es Diego Juarez, soy desarrollador y utilizo PL en 10g. Muchas veces he encontrado información útil en tu blog, por lo q te doy las gracias.

En esta oportunidad quería hacerte una consulta, yo comencé a desarrollar en SQL con Server 2000 y luego 2005, por lo que estoy bastante acostumbrado a usar JOIN en el FROM, sobre todo el LEFT donde incluyo no solo la condición de igualación, si no q usualmente incluyo otras condiciones sobre la tabla derecha para acotar la cantidad de registros y mejorar la performance de la query.

Esta misma practica la he llevado a mi empleo donde trabajamos con Oracle 10g, pero mi DBA no lo aprueba. Entiendo q en la versión 8i de Oracle no existia esta opción y se realizaba un producto cartesiano de todos los registros de ambas tablas y la condición de emparejamiento se colocaba en el Where con un "(+)" simulando un LEFT JOIN. Bueno, el quiere que lo siga haciendo de esa forma.

Quiero preguntarte que opinas vos respecto de ésta practica ya que según mi opinion es mejor la performance de un LEFT JOIN sobre la práctica anterior ya q llevar ésto a varias tablas en el From implicaría generar un set de datos exponencial, siendo que con un LEFT JOIN limitaría este set a la cantidad de registros de la tabla Driving o izquierda.

Tambien me refuta la utilización de la sentencia BETWEEN el prefiere que siga utilizando >= y <=, es mas, el sugiere q si tengo q evaluar si una fecha se encuentra entre un determinado intervalo y quiero incluir el extremo haga "Where FECHA >= FECHADESDE AND FECHA< FECHAHASTA+1.

Tal vez la utilización de éste tipo de sentencias (las nuevas) implique la realización de cálculos extra por parte del motor y sea el motivo, pero el tipo creo q no sabe y/o no quiere darme las razones.

Bueno, espero haber sido un poco claro y que puedas responderme.

Desde ya mucha gracias y vuelvo a felicitarte por el blog.

Diego Juarez

Leonardo Horikian dijo...

Hola Diego Juarez,

1) La mejor práctica es NO abusar del LEFT JOIN, RIGHT JOIN, OUTER JOIN ya que pueden producir planes de ejecución poco performantes.
Si utilizas este tipo de joins, deberías tratar de colocar predicados adicionales en el WHERE de tu consulta para filtrar los registros en el momento en el que se realiza el join y evitar los productos cartesianos.

2) Lo que dice tu DBA no es cierto.
El optimizador de Oracle convierte implicitamente la condición BETWEEN en >= <= durante el parseo de la consulta y no existen diferencias de performance entre ambas.

Creé un post respecto a este tema. Puedes mirarlo accediendo en --> http://lhorikian.blogspot.com/2010/07/diferencias-entre-between-y.html

Saludos

Diego Juarez dijo...

Muchas Gracias Leonardo por tu pronta respuesta y por el post que seguro me va a servir de referencia.

Normalmente cuando uso LEFT JOIN no solo incluyo la condición de emparejamiento (normalmente la PK) si no que tambien incluyo (como vos decis) predicados adicionales, pero en el mismo FROM, con el objetivo de acotar el producto cartesiano.

Segun propias deduccione, ésto debería reducir el producto cartesiano al traer menos registros de la tabla derecha antes de la ejecución del WHERE.

Nuevamente gracias por tu ayuda.

Slds.

Leonardo Horikian dijo...

Hola Diego Juarez,

No es buena práctica utilizar inline views (consultas dentro del FROM) ya que depende de cómo se encuentre escrita la consulta, el optimizador va a ejecutar primero esa consulta, guardarla en un espacio termporal y luego joinearla con el resto de las tablas.
Esto puede impactar negativamente en la performance de la consulta.

En general, cuando escribes una consulta dentro del FORM, el optimizador va a desarmar ese consulta y la va a reescribir colocando los predicados en el WHERE y dejando las tablas que conforman la consulta en el FORM.

En la mayoría de los casos, recomiendo no utilizar inline views.

Saludos

Diego Juarez dijo...

Leonardo, una vez mas tengo que agradecerte por tus respuestas que realmente iluminan.

Muchas gracias por tu blog y tus ideas.

Slds.

Diego Juarez