Desempeño de consultas SQL relacionales y objeto-relacionales en Oracle
The performance of relational and object-relational SQL queries when using Oracle
En este artículo se muestra por medio de consultas específicas el comportamiento del modelo relacional y objeto- relacional, y se presenta así un estudio en el que se mide y a la vez se compara la eficiencia (tiempo, uso de recursos del sistema) de operaciones que involucran cláusulas GROUP BY, subconsultas (con las cláusulas IN y EXISTS), y reuniones (joins).
Introducción
Buscar la optimización de las consultas para reducir tiempos de respuesta o evitar el uso exagerado de recursos del sistema, se ha constituido en un objetivo durante los últimos años. En muchas consultas, la realización de reuniones (joins), agrupamientos y subconsultas entre tablas, es indispensable para obtener la información solicitada.
El SGDB Oracle soporta el modelo relacional y el objetorelacional a partir de la versión 8i (Oracle Corporation, 2003), sin embargo poco se sabe cuándo es mejor utilizar cada uno de ellos (Bodnar, 2000; Raghavan, 1999), es por esto que se procederá a analizar casos que proporcionarán una base para entender y aplicar de una mejor manera, las consultas que se construyan en uno u otro modelo (tablas relacionales, frente a tablas basadas en tipos y tablas anidadas del modelo objeto-relacional).
Para lograr tal análisis, Oracle provee varias herramientas que permiten observar cómo se comporta la ejecución de una determinada consulta. Estas herramientas son el EXPLAIN PLAN, SQL TRACE y el Tkprof. Estas herramientas entregan información detallada acerca de la ejecución de una consulta (tales como bloques leídos durante la ejecución de la consulta, filas procesadas, uso de la cpu, entre otros), la cual ayuda en gran manera a evaluar su desempeño. Sin utilizar estas herramientas no sería posible analizar cómo se comporta internamente la consulta, es decir, no se dispondría de información suficiente para conocer en qué forma se debe modificar una consulta para hacerla más eficiente.
El SGBD Oracle también ofrece la oportunidad de modificar la forma en que se ejecutan internamente las consultas, esto se logra mediante la utilización de palabras clave den tro de la sentencia a ejecutar. Estas palabras clave son llamadas hints. A través de su utilización se puede influir en la ejecución parcial o total de la consulta con el objetivo de mejorar posiblemente el rendimiento de la misma.
El SGBD Oracle posee un optimizador interno que le permite definir un plan de ejecución para una consulta. Este optimizador, sin embargo, no siempre define el plan más óptimo. Es en estos casos en donde la utilización de los hints se hace necesaria para la búsqueda de consultas optimizadas.
El SGBD soporta una gran cantidad de hints para forzar al optimizador a realizar diferentes acciones específicas que ayudan al proceso de optimización (entre ellas se encuentran el forzar o no la utilización de índices, selección del método para realizar una reunión, entre otros); sin embargo, no es el objetivo de este artículo mostrar la variedad de hints que soporta el SGBD Oracle, sino mostrar y utili zar aquellos que apoyan el enfoque del artículo. Un análisis detallado puede verse en (Nyffenegger, 2001)
Recursos
-
Formatopdf
-
Idioma:español
-
Tamaño:999 kb