Introducción a la Optimización de Consultas. Francisco Moreno.

Slides:



Advertisements
Presentaciones similares
Ciclo de vida de desarrollo de software
Advertisements

COLEGIO DE BACHILLERES PLANTEL #13 Xochimilco-TEPEPAN
integridad referencial
También conocido como Diseño Lógico Rodrigo Salvatierra Alberú.
Supervisión del rendimiento de SQL Server
COLEGIO DE BACHILLERES PLANTEL 13 XOCHIMILCO-TEPEPAN MATERIA:TIC EQUIPO:23 PRESENTACION: BASE DE DATOS ALUMNAS: Velazquez Corona Elsa Ponciano Antonio.
TEMA 8: DIAGRAMAS EN UML.
EXPLAIN PLAN Cómo leer los resultados del EXPLAIN PLAN
PARADIGMA Es un esquema de pensamiento que nos lleva a concebir las cosas de una manera determinada. el término paradigma puede indicar el concepto de esquema.
Acceso a datos con ADO.NET
Informe del presupuesto y evaluación de alternativas de inversión.
Bases de Datos Relacionales
Academia de Informática
DISEÑO DE LA INTERFAZ DE USUARIO
Subconsultas Avanzadas

Una base de datos es un “almacén” que nos permite guardar grandes cantidades de información de forma organizada para que luego podamos encontrar y utilizar.
Administración de Bases de Datos
04/02/031 INSURE ++ v6.0 Salvador Benimeli Fenollar Laboratorio de Sistemas de Información Facultad de Informática Universidad Politécnica de Valencia.
El Ciclo de Vida de los Sistemas
“Diseño de base de Datos Alquicira Jiménez Carolina 303
UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO MODULO IV ADMINISTRACIÓN DE BASES DE DATOS Administración del DBMS E.I. L.E. Prof. Ramón Castro Liceaga SEMINARIO.
TIPOS DE SOFTWARE Se denomina software a un programa, equipamiento lógico o soporte lógico necesario para hacer posible la realización de una tarea con.
Colegio de Bachilleres Plantel 13 Xochimilco-Tepepan Integrantes: Karen Elizabeth González Monroy Elizabeth De Jesús Vergara Grupo:308.
Fundamentos de bases de datos:
Sistema de Costos por Procesos
Ingeniería en Sistemas de Información Diseño de Sistemas (3K1)
REALIZADO POR: MERINO MERINO JORGE MORI CORREA JHONATAM VIDARTE DELGADO JAVIER.
INFORMATICA VII (Programación e implementación de sistemas)
Sistemas, Procesos y Modelos
ACCESS.
Parte I. Estructuras de Datos.
CICLO DE VIDA Y NORMAALIZACION DE UN SISTEMA DE BASE DE DATOS
Cuentas de usuarios y grupos en windows 2008 server
TEMA 10: DIAGRAMA DE: OBJETOS, SECUENCIA Y DESPLIEGUE EN UML
Introducción al Lenguaje. ¿ Qué es PHP ? O Hypertext Pre-processoes (PHP) es un lenguaje de "código abierto" interpretado, de alto nivel, embebido en.
COLEGIO DE BACHILLERES PLANTEL 13 XOCHIMILCO-TEPEPAN MATERIA:TIC EQUIPO:21 PRESENTACION: BASE DE DATOS ALUMNAS: Adán Millán Sánchez.
PROCEDIMIENTOS ALMACENADOS Es una consulta almacenada en la base de datos en un servidor. Los P.A. Mejoran el Rendimiento Disminuyen el tráfico. Los P.A.
Ing. Noretsys Rodríguez. Definición de Conceptos  Falla: Ocurre cuando un programa no se comporta de manera adecuada. Es una propiedad estadística de.
Bases de Datos.
COLEGIO DE BACHILLERES “XOCHIMILCO TEPEPAN” Nº13  Tecnologías de la Información y comunicación 3.  Profa. Gabriela Pichardo Lazardo EQUIPO 25  Emmanuel.
MARTÍNEZ VALLEJO ISAMAR SCANDA MONTOYA MENDOZA DIANA RUBI GRUPO: 304.
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 0 Introducción.
Alexander Aristizabal Ángelo flores herrera
Monitorización y optimización del rendimiento en Windows 2000.
Sistemas de Archivos Sistemas Operativos.  Se debe proporcionar un almacenamiento secundario que respalda a la memoria principal  El Sistema de archivos.
Gabriel Montañés León.  El sistema de nombres de dominio (DNS, Domain Name System) se diseñó originalmente como un protocolo. Antes de considerar qué.
TIPOS DE PRUEBAS DEL SOFTWARE
SHUTTENBORG ACCESS CONOCE LOS PROGRAMAS. Cortés Gamboa Lizzeth
INGENIERÍA DE REQUERIMIENTOS
El sistema de comunicación entre los distintos componentes Unidad I. Conceptos de Bases de Datos Realizó: I.S.C. Raquel Gpe. Saucedo Chacón Tema
Laboratorio de optimización de BD
SQL (Structured Query Language) Lenguaje orientado a bases de datos y sobre todo, al manejo de consultas; el objetivo principal de SQL es la realización.
Colegio de Bachilleres Plantel 13 Xochimilco - Tepepan
Estructurar tus ideas para hacerlas realidad
DISPARADORES Y SISTEMAS DE GESTION DE BASE DE DATOS DE SQL
Clase #3 de Access. Temario Consultas Consultas Creación y manejos de consultas Creación y manejos de consultas Macros Macros Relaciones Relaciones.
INTRODUCCIÓN A LA INGENIERIA DE SOFTWARE ALUMNO MILLER ANDRES GALINDO DUCUARA (412088)
Investigación preliminar  Entender la naturaleza del problema  Definir el alcance y las restricciones o limitaciones del sistema  Identificar los beneficios.
MEMORIA DINÁMICA.
Partes de la ventana Access
Bases de Datos y Sistemas de Gestión de Bases Relacionales.
DISEÑO DE BASES DE DATOS (modelos para el diseño)
Diccionario/Directorio de Datos
¿Qué es una base de datos? Una base de datos se puede definir como un conjunto de información relacionada que se encuentra agrupada ó estructurada. Desde.
DLM Transact SQL Sesión I Introducción al SQL Server Uso de las herramientas de consultas del Transact SQL.
Presentación De UML Lenguaje estándar para escribir planos de software Se usa para visualizar, especificar, construir y documentar los artefactos de un.
Bases de datos II Universidad del Cauca Ing. Wilson Ortega.
Planificación de CPU Conceptos Básicos Criterios de Planificación Algoritmos de Planificación Planificación con Múltiples Procesadores Planificación Real-Time.
Arquitectura de Computadoras (Taller) Semestre II de 2008.
Transcripción de la presentación:

Introducción a la Optimización de Consultas. Francisco Moreno

Informe  Lectura del capítulo 14 “Optimización de Consultas” del libro: “Fundamentos de Bases de Datos”, Korth et al. Cuarta Edición Disponible en: sdedatos/

Informe Informe: - 3 páginas con las ideas principales del documento - 2 páginas en las que se presente alguna aplicación práctica del documento en un contexto de un caso de la “vida real”

Introducción al afinamiento (tuning) de SQL Mejorar el desempeño de SQL es generalmente la forma más efectiva de mejorar el desempeño de las aplicaciones Afinar SQL no es sencillo Beneficios al realizar tuning: Mejorar el tiempo de respuesta de las aplicaciones online Mejorar el tiempo de las aplicaciones batch (puede llegar el momento en que traspasen los límites permisibles  ¿+ 12 horas?) Garantizar la escalabilidad de la aplicación Reducir la carga del sistema  liberar recursos para otros propósitos Evitar actualizaciones innecesarias (e inútiles muchas veces) de hardware

Volumen de Datos Tpo. de Rta. Tipo de Degradación de Rendimiento “Bottleneck” Exponencial Lineal Afinado

Objeciones comunes para realizar tuning:  “El optimizador automáticamente afina las sentencias SQL”  “Afinar SQL no está dentro de mi área de especialidad”  “Yo escribo SQL, otra persona lo debe afinar”  “Afinaré el SQL más tarde”  “No podemos darnos el lujo de dedicar tiempo a afinar el SQL”

¿Cuándo se debe afinar?  Idealmente SQL debería ser afinado en el momento en que se escribe.  Mientras más avanzado esté el proyecto más difícil será realizar el tuning: –Cambiar algunos aspectos implican cambiar muchas otras cosas –Una vez que SQL entra en producción, la simple adición de un índice sobre una tabla “grande” puede ser complejo (tiempo, restricciones corporativas etc.)

Costo-Beneficio del tuning durante el ciclo de vida de un sistema DiseñoDesarrolloPruebasProducción Costo de Realizar Tuning Mejora del Desempeño

Impactodel Tuning Impacto del Tuning Posible Mejora Diseño de la BD Tuning SQL Compra de nuevo hardware Tuning del Servidor de BD Tuning del Sistema Operativo Tuning de la Aplicación (sin incluir SQL)

El proceso de afinamiento de SQL: Generar plan de Ejecución Afinar SQL Reescribir la Sentencia SQL Usar Hints Adicionar o Quitar índices ¿Se ha logrado la optimización deseada? Formular un nuevo plan de Ejecución Sentencia SQL inicial No Si Terminar El tuning Es un proceso iterativo Rediseño de tablas

Condiciones para realizar tuning: Volúmenes de datos reales: Realizar tuning contra tablas vacías o con pocos registros es prácticamente inútil. Alternativas: Probar en el ambiente real antes de entrar en producción Trabajar en un ambiente con tablas a escala de las reales, por ejemplo un 25% del tamaño de las tablas “grandes” y un 100% de las tablas “pequeñas” (tablas de referencias)

Documentación de los modelos disponibles Los requerimientos del sistema han sido expuestos ¡Si el diseño está mal, el tuning puede ser inútil! Aunque el SQL esté afinado, si el servidor no lo está, esto podría impedir el logro de las expectativas…  Afinar el servidor de la BD Condiciones para realizar tuning:

Herramientas de Oracle para realizar Tuning de Sentencias SQL

EXPLAIN PLAN El plan de ejecución de una sentencia SQL es la secuencia de operaciones que el motor de Oracle realiza para ejecutar una sentencia El EXPLAIN PLAN es una herramienta proporcionada por Oracle que permite observar el plan de ejecución (y otros datos valiosos) de una sentencia específica El EXPLAIN PLAN muestra los planes de ejecución escogidos por el optimizador de Oracle para las sentencias SELECT, UPDATE, INSERT y DELETE

EXPLAIN PLAN Los componentes del plan de ejecución de una sentencia incluyen: El orden de acceso a las tablas utilizadas en la sentencia Un método de acceso para cada tabla utilizada en la sentencia Un método de acceso a las tablas para operaciones binarias: - Reunión (join) - Unión - Intersección etc.

EXPLAIN PLAN Aunque la salida del EXPLAIN PLAN muestra cómo ejecuta Oracle una sentencia SQL, estos resultados por si solos no son suficientes para diferenciar entre sentencias bien optimizadas y las que no lo están Por ejemplo, si la salida muestra que una sentencia usa un índice, esto no significa que la sentencia ejecuta eficientemente. En algunas ocasiones los índices pueden ser extremadamente ineficientes…(ver luego índices)

EXPLAIN PLAN ¿Entonces por qué se debe utilizar el EXPLAIN PLAN? El EXPLAIN PLAN permite determinar por ejemplo si un índice está siendo usado, el método de join que está siendo utilizado etc. Es posible instruir a Oracle para que modifique el plan (ver Hints) y luego a través de pruebas (tipo TKPROF*), determinar cuál es más eficiente Al poder visualizar el plan de ejecución de una consulta se puede determinar dónde puede haber problemas potenciales de rendimiento *Ver más adelante

EXPLAIN PLAN Cuando se evalúa un plan se debe examinar adicionalmente el consumo actual de recursos de la sentencia Lo anterior se logra mediante el uso de las herramientas TRACE y TKPROF para examinar el rendimiento de las sentencias SQL

EXPLAIN PLAN Los resultados del EXPLAIN PLAN quedan guardados en una tabla la cual puede ser creada utilizando un script proporcionado por Oracle (UTLXPLAN.SQL). Dicha tabla posee las siguientes columnas: Es el identificador de la sentencia.

EXPLAIN PLAN Especifica variantes para la operación ejecutada. Más adelante se observarán sus posibles valores.

EXPLAIN PLAN Utilizado para consultas distribuidas. OTHER contiene el texto SQL que es ejecutado en un nodo remoto. Información adicional para consultas distribuidas y paralelas. a tablas. está Número estimado de filas accesadas por la operación Número estimado de bytes retornados por la operación