Bases de Datos Oracle Optimización oscarlin@dc.uba.ar.

Slides:



Advertisements
Presentaciones similares
Diseño de Bases de Datos
Advertisements

III - Gestión de memoria
Sistemas Gestores de Ficheros
Optimización del rendimiento de las consultas
Administración de transacciones y bloqueos
Maestría en Bioinformática Bases de Datos y Sistemas de Información Nociones de p erformance Ing. Alfonso Vicente, PMP
“Tuning” Universidad Nacional Autónoma de México Bases de datos I
OPTIMIZACIÓN DEL RENDIMIENTO
Optimización de aplicaciones de bases de datos OLTP Speaker: Edinson Medina SQL Server Premier Field Engineer Microsoft Corporation Blog:
Mejoras a la Cláusula GROUP BY
Julio Pacheco SQL SERVER 2005 XML APRENDIENDO CON EJEMPLOS.
ARQUITECTURA DE ORACLE
EXPLAIN PLAN Cómo leer los resultados del EXPLAIN PLAN
Implementación de archivos
RENDIMIENTO Corporación Universitaria de Ciencia y Desarrollo Ing. Andrés Vargas -
TEMA: SISTEMA DE ARCHIVOS
4.3. Privilegios de usuarios
Evaluación y Optimización de Consultas Láminas seleccionadas de las láminas de la Prof. María Esther Vidal.
BASE DE DATOS DISTRIBUIDAS
Cristian Alaniz - Daniel Hielpos. Agenda - Arquitectura - Tipos de Objetos - Lenguaje de Consulta - Transacciones - Backup y Recuperación - Seguridad.
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 5 Agregando Datos Usando Funciones de Grupo.
Bases de Datos Relacionales
Tema 10: Gestión de Memoria
Motores de almacenamiento en MySQL por Mario López y Juan A. Sánchez.
Diseño Físico. yEl diseño físico de BD forma parte importante del ciclo de vida de un sistema de BDs. yConsiste en escoger las estructuras de almacenamiento.
Ing. Fabián Ruano.  Definición  Diferencias con BD Centralizadas.
D Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados. Uso de SQL*Plus.
Subconsultas Avanzadas
Bases de Datos Oracle Conceptos Basicos
Gestión de Objetos con Vistas de Diccionario de Datos
Administración de Memoria Memoria Virtual
Administración de Bases de Datos
Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),
Asignación de Espacio No Contiguo
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 11 Creando Vistas.
Inteligencia de Negocios Buenos Aires, mayo de 2009 U.T.N. – F.R.B.A. Prof: Ing. Pablo Cigliuti Ayud: Ing. Rafael Rizzo.
PostgreSQL: Parte 1 Integrantes: Álvaro Marciales Claudio Torrez.
T ABLESPACES EN O RACLE JULIÁN JOSÉ TORRES ZABALA PEDRO JAVIER SILVA CRISTIAN CAMILO RAMIREZ JULIAN ARJONA UNIVERSIDAD DEL TOLIMA INGENERIA DE SISTEMAS.
IBD CLASE 15. SQL Lenguaje de Consultas Estruturado (SQL) ◦Lenguaje de trabajo estándard para modelo relacional ◦Componentes ◦DDL: Data Definition Language.
Programación en Visual Basic Lección #8: SQL Por Antonio F. Huertas.
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 12 Otros Objetos de la Base de Datos.
EXPLAIN PLAN Cómo leer los resultados del EXPLAIN PLAN
Arquitectura de Oracle
LENGUAJE SQL.
FRAGMENTACION EN ORACLE
UNIVERSIDAD LATINA BASES DE DATOS ADMINISTRACIÓN.
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.
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 0 Introducción.
Almacenamiento de la información IES Virgen del Espino.
COMANDOS DML DML son las siglas de Data Manipulation Language y se refiere a los comandos que permiten a un usuario manipular los datos en un repositorio,
Introducción a la Optimización de Consultas. Francisco Moreno.
UNIVERSIDAD LATINA II. FUNCIONES DEL ADMINISTRADOR.
Unidad 4 SEGURIDAD 4.1 Tipos de usuarios
Laboratorio de optimización de BD
3.2.1 Administración de almacenamiento
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.
MSSQL SERVER CURSO BÁSICO 1. DESCRIPCIÓN DEL CURSO. Sesión 4: Sentencia Insert,Transacciones,Insert general, Insert Select * From, Sentencia Update,Update.
HINTS ¿Cómo afectar el plan de ejecución? Por defecto, el SGBD tomará en cuenta el camino de ejecución (Execution Path) determinado por el optimizador.
Arquitectura de Computadores I
SQL es el lenguaje de comunicación entre el programa cliente y programa servidor; Oracle es un programa servidor, en el que está la base de datos propiamente.
Unidad 6. Tema 4. Lenguaje de consultas SQL
Paralelización de operaciones
7 Fragmentación Bases de datos II I-2014 Universidad del Cauca Ing. Wilson Ortega Bases de datos II I-2014 Universidad del Cauca Ing. Wilson Ortega.
6 Triggers ORACLE - II Bases de datos II I-2014 Universidad del Cauca Ing. Wilson Ortega Bases de datos II I-2014 Universidad del Cauca Ing. Wilson Ortega.
Bases de datos II Universidad del Cauca Ing. Wilson Ortega.
Copyright  Oracle Corporation, All rights reserved. 12 Otros Objetos de la Base de Datos.
DML Transact SQL Sesión X Triggers. Duración 2 Horas.
Administración de Memoria Conceptos Swapping Asignación Continua Paginación Segmentación Segmentación con Paginación.
EXPLAIN PLAN Cómo leer los resultados del EXPLAIN PLAN
Optimización de consultas en SQL Server Crux Consultores, 2017.
Transcripción de la presentación:

Bases de Datos Oracle Optimización oscarlin@dc.uba.ar

Temarios: 1- Uso eficiente de discos 2- Memoria SGA 3- Uso de índices 4- Oracle Optimizer 5- Hints 6- Compresión de tablas 7- Sorting

Uso eficiente de discos Separar Redo logs de datos. Deben estar aislados en sus propios dispositivos y controladores. Redo logs en dispositivos más rápidos. Por ej. nivel 0 o 1 en un raid de discos y datos en el nivel 5. Separar tablas de índices. Partición de tablas e índices. Balanceo de carga. Tablespaces temporales: Evitar extensiones desiguales. Múltiplo del tamaño de bloque. Esquema para reorganización de datos. Analizar periódicamente los objetos de BD. Permite actualizar las estadísticas.

Uso eficiente de discos (cont.) RollBack Segments. Deben ubicar estos segmentos en diferentes discos. En caso que la contención supera a 1% o 2% de waits/gets, crear más segmentos. sort_area_size Si se realiza muy frecuente los sort en discos, se debe incrementar sort_area_size de memoria de PGA o SGA en el ini.ora. Modificación Dinámica.

Memoria SGA Insuficiencia de Memoria SGA: Degrada enormemente el performance. Modificación Dinámica. Sobredimensionamiento de SGA: Utilización de memoria virtual (UNIX) también afectaría la performance. Uso de Shared Pool: Memoria disponible, reparseo, contención, fragmentación, pinning. Contención de buffer de datos o buffer de Redo Log. DBWR muy lento o LGWR mu lento. Agregar más instancias.

Uso de índices Mantenimiento de índices Index Skip Scan (9i). Cuándo se necesitan realizar Rebuilt (Reconstrucción) o Coalesce (unión): mucho niveles, muchos bloques hojas borrados lógicamente. Muchos valores repetidos: usar bitmapped index. Index Skip Scan (9i). Creación de subíndices en índices compuestos. Funciona en CBO. Bitmap based index. Function based index. Funciones desactiva el uso de índices. “Not” desactiva el uso de índices

Oracle Optimizer RBO (Optimizador basado en reglas) Reglas prefijadas para armar plan de ejecución. No soporta bitmap indexes, table partitions y function based indexes. CBO (Optimizador basado en costos) Calcular el costo de distintos plan de ejecución y elije el de menor costo. ANALYZE [TABLE, INDEX] <object_name> [COMPUTE,ESTIMATE] STATISTICS. Parámetros: FIRST_ROWS, ALL_ROWS y otros parámetros que puedan influir en la decisión de optimizador en usar índices, full scan, hash joins, sort, etc. Uso de hints para cambiar plan de ejecución. Ultimo recurso. Inválidos: ej /*+ first_rows parallel(emp,8) */.

Oracle Optimizer (cont.) Problema más común: Full-table scan para tablas muy grandes. Solución: agregar índice. Por falta de información, no elije el mejor método de join. Solución: usar hints tales como use_nl, use_hash, etc. o reanalizar las estatísticas de las tablas intervinientes. Métodos de joins disponibles: sort-merge join, nested loop join, hash join, star join, etc. Guardar tablas pequeñas e índices en buffer cache.

Hints /*+ CHOOSE */ /*+ RULE */ /*+ ALL ROWS */ /*+ FIRST ROWS */ Optimización por costos. /*+ RULE */ Optimización por reglas /*+ ALL ROWS */ Optimización por costos y trate de devolver todas las filas en menor tiempo. /*+ FIRST ROWS */ Optimización por costos y trate de devolver la primera fila lo antes posible. /*+ INDEX(tabla o índice) */ Fuerza la utilización de índice. /*+ ORDERED */ Indica que los joins se debe hacer respetando el orden de las tablas.

Hints (cont.) /*+ FULL */ /*+ PARALLEL */ Realiza un full-table scan. /*+ PARALLEL */ Sugiere una consulta paralela. /*+ USE_HASH(tablaA,tablaB) */ Sugiere usar hash join. /*+ USE_NL(tabla) */ Sugiere usar nested loop join. /*+ USE_MERGE(tabla … ) */ Sugiere usar sort-megre join.

Compresión de tablas Disponible a partir de 9i, release 2. Reduce el espacio de almacenamiento, también backup. create table … compress; alter table xxx compress; alter table xxx move compress/uncompress; select table_name,compression from user_tables; También permite manejar a nivel tablespace. Carga de datos Direct path SQL*Loader, serial insert con el hint /*+ APPEND */, parallel insert, create table xxx compress as ... Recomendable para tablas read-only de gran tamaño. No recomendable para tablas que hacen updates. No hay problema con deletes e inserts. Aplicables para vistas materializada y tablas particionadas Puede inclusive mejorar performance de las consultas.

Sorting Se produce cuando: Y tiene lugar en: creamos un índice. en la consulta se usa “order by” o “group by” . en la consulta se usa “distinct”, “unique”. operaciones de UNION, INTERSECT o MINUS efectuar un sort-merge join comando “analyze” Y tiene lugar en: memoria llamada “Sort Area”. En gral. de 64k a 256k. si se necesitan más espacios adicionales, se utilizan temporary segments ubicados en los discos.