Optimización SQL en Oracle Comprar el libro

Optimización SQL en Oracle

Una guía práctica, detallada y completa sobre cómo implementar y explotar bases de datos Oracle de forma eficiente.

Portada de la Edición 1 de Optimización SQL en Oracle

Disponible también en Kindle. Formato optimizado para la visualización de código e imágenes.

425Páginas
27Ilustraciones
58Hints en detalle
338Elementos indexados

Cómpralo ahora

Kindle eBook

Kindle eBook

4,99 €

  • Gratis con Kindle Unlimited
  • Lectura en cualquier dispositivo
  • Optimizado para lectura Kindle/iPad

Comprar

Tapa dura — Amazon

Tapa dura — Amazon

39,51 €

  • IVA incluido
  • Envío internacional

Comprar

Tapa blanda — Amazon

Tapa blanda — Amazon

25,99 €

  • IVA incluido
  • Envío internacional

Comprar

Contenidos

Por qué éste es el libro: contiene todo lo necesario para aprender a optimizar SQL de forma eficiente.

Base de datos descargable

La base de datos de ejemplo del libro, disponible para descarga gratuita en formato DMP (export).

Código SQL descargable

Todo el código SQL del libro, así como los resultados de su ejecución, en formato txt.

EUL para Oracle Discoverer

EUL descargable para hacer reporting de los ejemplos, con dimensiones, jerarquías y cubos.

Múltiples versiones

Actualizado y compatible con Oracle9i, Oracle10g y Oracle11g, con la evolución del optimizador en las distintas versiones.

Visión 360º

Del diseño a la optimización de código en producción, tanto para entornos OLTP como data warehouse.

Glosario de hints

Un diccionario completo con todas las hints, incluyendo ejemplos de uso.

Vídeos

Disponibles próximamente: prácticas de optimización, como crear un índice clusterizado (ejemplo extraído del libro).

Empieza a leerlo ahora

Al igual que harías en una librería, escoge una parte del libro y empieza a leerla.

El módulo de Oracle responsable de analizar la mejor forma de optimizar una sentencia es el optimizador. El objetivo final del optimizador es la generación de un plan de ejecución óptimo. En sí, el plan de ejecución consiste en la definición de un conjunto de operaciones de acceso y procesamiento de los distintos objetos implicados.

Cada vez que una sentencia SQL se procesa en una base de datos, el primer paso es optimizar la consulta y buscar entre distintos planes de ejecución posibles cuál sería la forma más eficiente de ejecutarla.

Oracle dispone de dos optimizadores, uno basado en reglas y otro basado en costes. El primero utiliza reglas estáticas de preferencia, basadas en una puntuación de operaciones. Si una columna tiene un índice, tiene preferencia el uso del índice respecto al acceso FULL SCAN, y si existe a la vez un filtro por otra columna, que también tiene un índice, pero que es único, esta tendrá mejor puntuación para la decisión de la operación favorita del plan.

El optimizador basado en reglas no tiene conocimiento de los costes. No valora si la tabla tiene una o un millón de filas, ni cuán eficaz resulta el acceso a un índice.

El optimizador basado en costes apareció en la versión Oracle 7 y, desde entonces, ha sido el principal punto de mejora en la optimización de costes de sentencias. Los planes de ejecución del optimizador de costes son más arriesgados, y son la opción más efectiva si la base de datos tiene la información estadística al día. Actualmente, y desde la versión Oracle 10g, se desaconseja el uso del optimizador de reglas.

No obstante, sigue siendo posible, aun en Oracle 11g, ejecutar consultas que invoquen el viejo optimizador utilizando la hint de /*+RULE */. Úsenla bajo su propio criterio. Por mencionar un caso de utilidad, y también por curiosidad, conocer cuál sería el plan resuelto por reglas, sin evaluar costes, para ver una idea de la ruta o el camino inicial para recuperar las filas, puede resultar revelador en más de una ocasión.

El optimizador de costes, por otro lado, permite calcular diferentes tipos de aproximaciones a la evaluación del plan. Por defecto, su análisis se basará en la resolución de la sentencia que menos tarde en ejecutarse por completo, pero también puede evaluar los costes para la mayor velocidad en devolver la primera fila, o las cien primeras.

Estas distintas aproximaciones o modos de optimización resultan vitales en aplicaciones web que consultan un gran volumen de datos pero que visualizan un primer conjunto de elementos, o para aquellas aplicaciones de tipo cliente/servidor que necesiten que la base de datos vaya devolviendo las filas tan pronto las tenga listas para no caer en timeouts de los drivers de conexión o para no tener al usuario desesperado mientras se procesan todas las filas para ser devueltas.

Fragmento de la Parte 1. Para seguir leyendo, consigue el libro.

Capítulos

El libro cubre todos los enfoques técnicos que influyen en el rendimiento. Está dividido en seis partes.

Parte 1 — Entendiendo el optimizador

Cuenta qué sucede en el instante de la compilación de SQL en Oracle, desde la optimización primera por parte del optimizador hasta los elementos que la condicionan (hints, variables bind, SQL Baselines, SQL Profiles, estadísticas, parámetros, etc.).

Parte 2 — Conceptos y herramientas

Describe las herramientas para localizar código SQL ineficiente y analizar a fondo sus planes de ejecución, comprendiendo qué sucede en cada paso, tanto en accesos a objetos como en formas de join, así como las trazas reales de las ejecuciones.

Parte 3 — Mejoras en el diseño

Hay varios tipos de tablas, vistas materializadas e índices. Es imprescindible conocer al detalle todas las estructuras físicas, así como funcionalidades como el particionamiento simple y compuesto, para optimizarlas y lograr un buen rendimiento de sus consultas.

Parte 4 — Una mirada al data warehouse

Los entornos data warehouse tienen una arquitectura completamente diferente a un entorno transaccional, y ello afecta a su optimización. Esta parte se centra en optimizar los procesos ETL a estos entornos, así como la explotación con dimensiones, jerarquías, vistas materializadas, etc.

Parte 5 — Mejoras en el SQL

La parte práctica, con ejemplos de SQL ineficiente y estudios de cómo analizar los problemas de eficiencia llevado al trabajo de campo. Casos prácticos unidos a un método de trabajo para encontrar los puntos de caída de rendimiento y las formas de corregirlos.

Parte 6 — Glosario de hints

Todas las hints descritas y con ejemplos de su ejecución y su impacto en el rendimiento. Una radiografía exhaustiva de cómo transforman las decisiones del optimizador y transforman los planes de ejecución.

Sobre el autor

Carrera y biografía

Soy consultor de tecnologías Oracle desde el año 1999. En 2002 obtuve la certificación OCP en Administración Oracle y desde entonces he impartido cursos y desarrollado proyectos de consultoría basados exclusivamente en Oracle. He publicado artículos técnicos y participado en ponencias tecnológicas.

Motivación personal

Desde que empecé a trabajar con tecnologías Oracle me he visto en la necesidad de resolver el ocultismo que se esconde detrás de los problemas de rendimiento. Internet está lleno de mitos, algunos obsoletos y otros que nunca han sido ciertos. No existen «balas de plata»: existe un conocimiento técnico sobre cómo funciona el optimizador.

Javier Morales Carreras

Los revisores

Conoce a los revisores técnicos del libro.

Arturo Gutiérrez Gómez

Arturo Gutiérrez Gómez

Trabaja con bases de datos Oracle desde hace más de 19 años. En Oracle University ha liderado el área de Servidor de base de datos Oracle y ha colaborado en el diseño y la elaboración de cursos como Administración básica y avanzada, Oracle RAC y Advanced Replication. Está certificado en todas las versiones de Oracle, desde la 7.3 hasta la 11g. Ha publicado más de una docena de artículos técnicos sobre optimización del uso de los productos Oracle y ha impartido conferencias a clientes y usuarios de Oracle. En la actualidad trabaja en distintos proyectos basados en alto rendimiento, escalabilidad y alta disponibilidad.

Jetro Marco Plasencia

Jetro Marco Plasencia

Trabaja con bases de datos Oracle desde el año 2000. Ha trabajado en Oracle Ibérica dentro del departamento ACS (Advanced Customer Support), además de realizar varios proyectos como freelance para diferentes clientes nacionales e internacionales, aportando soluciones en Oracle RAC y tuning de base de datos. Está especializado en Oracle Real Application Clusters y certificado en Oracle 11g. Trabaja como Database Senior Specialist en una empresa farmacéutica internacional.

Contenido humano, no generado por IA

Written by Human, Not By AI

El libro lleva el sello Not By AI, una iniciativa que reconoce el contenido creado por personas frente al generado por inteligencia artificial. La ficha del proyecto afirma que el contenido aplicable de Optimización SQL en Oracle está creado principalmente —o íntegramente— por personas, que ha pasado revisión humana y que cumple la regla del 90% de Not By AI: al menos el 90% del contenido debe ser de creación humana. No cuentan como uso de IA la inspiración, los documentos legales de apoyo, el contenido que no ve el usuario ni la corrección de erratas. La primera edición se escribió entre 2010 y 2012, con revisión técnica y corrección editorial en 2013.
Ver la ficha del proyecto en Not By AI

Todos los derechos están reservados por el autor y la editorial TechLevel Biblioteca Técnica. Cualquier solicitud relativa a la difusión de su contenido debe ser remitida al autor y editores.