Bases de datos II 1-2014 Universidad del Cauca Ing. Wilson Ortega.

Slides:



Advertisements
Presentaciones similares
Base de Datos II.
Advertisements

IBD Clase 16.
Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación.
integridad referencial
VISTAS (VIEWS) DEFINICIÓN Y OBJETIVO DE LAS VISTAS.
LA BIBLIA DE MSQL PAG. EXPLAIN; Instructor; que se utiliza para examinar un registro de una tabla. El índice se examina dos veces sobre ambas tablas,
Rocio Contreras Aguila Primer Semestre Para poder ejecutar esto SQL Server nos permite definir datos y nos entrega herramientas para poder exigir.
Optimización del rendimiento de las consultas
COLEGIO DE BACHILLERES PLANTEL 13 XOCHIMILCO-TEPEPAN MATERIA:TIC EQUIPO:23 PRESENTACION: BASE DE DATOS ALUMNAS: Velazquez Corona Elsa Ponciano Antonio.
Maestría en Bioinformática Bases de Datos y Sistemas de Información Nociones de p erformance Ing. Alfonso Vicente, PMP
OPTIMIZACIÓN DEL RENDIMIENTO
SQL G r u p o
Mejoras a la Cláusula GROUP BY
Consultas anidadas.
Julio Pacheco SQL SERVER 2005 XML APRENDIENDO CON EJEMPLOS.
EXPLAIN PLAN Cómo leer los resultados del EXPLAIN PLAN
Johanna Lizeth Rodríguez Lorena Fda. Chávarro Ramos
INTEGRANTES ALEXIS MENDOZA ALDAIR ARRIETA CARLOS PASTOR LORENA RODRIGUEZ ANTHONY JIMENEZ.
8. Procesamiento y optimización de consultas
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 5 Agregando Datos Usando Funciones de Grupo.
Bases de Datos Relacionales
“Optimización de sentencias MySQL” jueves 26 de septiembre de 2013.
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.
Subconsultas Avanzadas
Optimización de Preguntas. Optimización de preguntas zOptimización: pregunta  plan costo ópt. costo = CPU + I/O + COMUNICACIONES zNecesario para responder.
Bases de datos en la Web n Las bases de datos permiten almacenar de una forma estructurada y eficiente toda la información de un sitio web n Ventajas –Proporcionar.
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.
Clase 10: Estructuras de datos y arreglos.
Bases de Datos Oracle Optimización
Administración de Bases de Datos
Dr. Mario Rossainz López Aplicaciones WEB Primavera 2015.
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 11 Creando Vistas.
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,
Diseñando la arquitectura de aplicaciones empresariales. Acceso al SQL Server.- Autenticación de usuario:
CONSULTAS SENCILLAS A LA BASE DE DATOS
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 12 Otros Objetos de la Base de Datos.
Autora: Francisca Montañez Muñoz
Consultas SQL (Base de Datos)
CICLO DE VIDA Y NORMAALIZACION DE UN SISTEMA DE BASE DE DATOS
LENGUAJE SQL.
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 14 Uso de Operadores de Conjuntos.
Tecnologías para el Aprendizaje
COLEGIO DE BACHILLERES PLANTEL 13 XOCHIMILCO-TEPEPAN MATERIA:TIC EQUIPO:21 PRESENTACION: BASE DE DATOS ALUMNAS: Adán Millán Sánchez.
Instrucciones para crear tablas My SQL. A nivel teórico, existen dos lenguajes para el manejo de bases de datos: DDL (Data Definition Language) Lenguaje.
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.
 La sentencia SELECT recupera todas las columnas o un subconjunto de ellas de una tabla. Esto afecta a todas las filas de la tabla, a menos que especifiquemos.
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.
Comandos de SQL Prog. Orientada a Eventos. Inserción de datos (INSERT) INSERT….VALUES INSERT INTO Tabla1 (Columna1, Columna2…) VALUES (‘ValorAlfa’, ValorNum…);
MSSQL SERVER CURSO BÁSICO 1. CONCEPTOS BASICOS DE SQL. DESCRIPCIÓN DEL CURSO. Sesión 3: Índices Uso, Creación, Tipos, Eliminación LENGUAJE DE CONSULTAS.
MIA - Grupo 5 Unidad 2.
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.
DISPARADORES Y SISTEMAS DE GESTION DE BASE DE DATOS DE SQL
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.
DISEÑO DE BASES DE DATOS (modelos para el diseño)
Unidad 6. Tema 4. Lenguaje de consultas SQL
Departamento de Lenguajes y Sistemas Informáticos escuela técnica superior de ingeniería informática Diseño de Bases de Datos Tema 4: Integridad.
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.
DLM Transact SQL Sesión I Introducción al SQL Server Uso de las herramientas de consultas del Transact SQL.
3 Cursores ORACLE Bases de datos II I-2014 Universidad del Cauca In. Wilson Ortega Bases de datos II I-2014 Universidad del Cauca In. Wilson Ortega.
Structure Query Languaje SQL. Introducción a SQL El lenguaje de consulta estructurado (SQL) es un lenguaje de base de datos normalizado, utilizado por.
DLM Transact SQL Sesión II Recuperación de información.
Querys a bases de datos con MS ACCESS. DEFINAMOS LOS TERMINOS: DML=Lenguaje de manipulación de datos Las sentencias DML permiten generar consultas para.
DML Transact SQL Sesión VI Trabajando con subconsultas.
6 Triggers ORACLE 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 - III 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.
Selección Condicionada de Filas Uso de la cláusula WHERE La cláusula WHERE restringe las columnas que retorna una consulta según la condición que se imponga.
Transcripción de la presentación:

Bases de datos II Universidad del Cauca Ing. Wilson Ortega

Introducción El procesamiento de consultas hace referencia a la serie de actividades implicadas en la extracción de datos de una base de datos Los pasos básicos son: 1. Análisis y traducción 2. Optimización 3. Evaluación

Pasos de procesamiento Los usuario no siempre escriben la consulta de la forma óptima

Medidas del coste de una consulta Diferentes recursos Accesos a disco Tiempo de CPU En sistemas de bases de datos distribuidos o paralelos, el coste de la comunicación En grandes sistemas de bases de datos, los accesos a disco (que se miden como el número de transferencias de bloques de disco) son normalmente el coste más importante

Optimización de consultas Dada una consulta, suele haber gran variedad de métodos para calcular la respuesta. Es responsabilidad del sistema transformar la consulta tal y como la introdujo el usuario en una consulta equivalente que pueda calcularse de manera más eficiente. La evaluación de las consultas complejas implica muchos accesos a disco. Merece la pena asignar una cantidad considerable de procesamiento a la elección de un método que minimice esos accesos. La estrategia que escoja el sistema de bases de datos para la evaluación de una operación depende del tamaño de cada relación y de la distribución de los valores dentro de las columnas. Se almacenan estadísticas para cada relación. El primer paso para la selección de una estrategia de procesamiento de consultas es la búsqueda de una expresión del álgebra relacional que sea equivalente a la expresión dada y que se estime menos costosa de ejecutar.

Plan de ejecución en Oracle Cada vez que se ejecuta una sentencia Oracle crea un plan de ejecución de la sentencia. Un plan de ejecución define la forma en que oracle busca o graba los datos. Por ejemplo, va a usar o no los indices en una sentencia Si no definimos nuestra propia tabla se usa la tabla PLAN_TABLE EXPLAIN PLAN [SET STATEMENT_ID = 'text'] FOR sentencia; DELETE PLAN_TABLE; EXPLAIN PLAN FOR SELECT * FROM T_PEDIDOS WHERE CODPEDIDO = 5; DELETE PLAN_TABLE; EXPLAIN PLAN FOR SELECT * FROM T_PEDIDOS WHERE CODPEDIDO = 5; SELECT SUBSTR (LPAD(' ', LEVEL-1) || OPERATION || ' (' || OPTIONS || ')',1,30 ) "OPERACION", OBJECT_NAME "OBJETO" FROM PLAN_TABLE START WITH ID = 0 CONNECT BY PRIOR ID=PARENT_ID; SELECT SUBSTR (LPAD(' ', LEVEL-1) || OPERATION || ' (' || OPTIONS || ')',1,30 ) "OPERACION", OBJECT_NAME "OBJETO" FROM PLAN_TABLE START WITH ID = 0 CONNECT BY PRIOR ID=PARENT_ID;

Recomendaciones de optimización Crear índices sobre columnas lo más selectivas posibles Limitar los accesos a tablas remotas Utilizar la cláusula UNION ALL en lugar de UNION siempre que sea posible. UNION remueve los duplicados Considerar en algunos casos alternativas al Join (consultas anidadas, cláusula exists) Las condiciones (tanto de filtro como de join) deben ir siempre en el orden en que esté definido el índice (si existen índices estudiar la posibilidad de añadirlos) Para chequeos, siempre es mejor crear restricciones (constraints) que disparadores (triggers)

Recomendaciones de optimización Tener en cuenta que al crear un restricción de tipo PRIMARY KEY o UNIQUE, se crea automáticamente un índice sobre esa columna Utilizar siempre que sea posible las mismas consultas. La segunda vez que se ejecuta una consulta, se ahorrará mucho tiempo de parsing y optimización, así que se debe intentar utilizar las mismas consultas repetidas veces. Revisar las consultas periodicamente, puede no sean ya optimas debido al constante cambio en el tamaño de las tablas, la distribución de los valores, el esquema etc.

Recomendaciones de optimización Las consultas más utilizadas deben encapsularse en procedimientos almacenados. El plan de ejecucón queda almacenado. Los filtros de las consultas deben ser lo más específicos y concretos posibles. Es mucho más específico poner WHERE campo = 'a' que WHERE campo LIKE '%a%‘ Es muy recomendable utilizar siempre consultas que filtren por la clave primaria u otros campos indexados

Recomendaciones de optimización Evitar la condiciones IN ( SELECT…) sustituyéndolas por joins: cuando se utiliza un conjunto de valores en la clausula IN, se traduce por una condición compuesta con el operador OR. Esto es lento, ya que por cada fila debe comprobar cada una de las condiciones simples. Cuando se hace una consulta usando joins, el orden en que se ponen las tablas en el FROM influye en el plan de ejecución. Aquellas tablas que retornan más filas deben ir en las primeras posiciones, mientras que las tablas con pocas filas deben situarse al final de la lista de tablas

Recomendaciones de optimización Si en la cláusula WHERE se utilizan campos indexados como argumentos de funciones, el índice quedará desactivado. Una consulta cualificada con la cláusula DISTINCT debe ser ordenada por el servidor aunque no se incluya la cláusula ORDER BY Para comprobar si existen registros para cierta condición, no se debe hacer un SELECT COUNT(*) FROM X WHERE xxx, sino que se hace un SELECT 1 FROM X WHERE xxx.

Recomendaciones de optimización Si vamos a realizar una operación de inserción, borrado o actualización masiva, es conveniente desactivar los índices, ya que por cada operación individual se actualizarán los datos de cada uno de los índices. Una vez terminada la operación, volvemos a activar los índices para que se regeneren La mejor optimización es contar con una base de datos bien diseñada

Bibliografía Fundamentos de Bases de Datos. 4ta edición. A. Silberschatz