INDEXADO EN DW.

Slides:



Advertisements
Presentaciones similares
integridad referencial
Advertisements

IBD Clase 7.
ORACLE OLAP Integrantes: *Aizaga, Martiniano *Gallegos, Marina
DATA WAREHOUSE Presentador Por: Andrés Fabián Cortes Solano.
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,
Estadísticas en SQL Server Rocío Contreras Águila, Primer Semestre 2010.
Rocío Contreras Águila Primer Semestre 2010
BASE DE DATOS OBJETO RELACIONAL
SIR – Sistema de indicadores Regionales Capacitación Carátula.
COLEGIO DE BACHILLERES PLANTEL 13 XOCHIMILCO-TEPEPAN MATERIA:TIC EQUIPO:23 PRESENTACION: BASE DE DATOS ALUMNAS: Velazquez Corona Elsa Ponciano Antonio.
Microsoft SQL Server 2008 – SQL Server Integration Services
Business Intelligence (BI) Software (Software de Inteligencia Impresario)
Conjunto de información almacenado en memoria auxiliar Permiten acceso directo a programas que las manipulan Es un sistema de archivos electrónicos.
Access Bases de datos.
U NIDAD 2 L ENGUAJE DE DEFINICIÓN DE DATOS (DDL) 1.
Las estructuras de arreglos fueron usadas en las primeras computadoras digitales, cuando la programación se hacía todavía en lenguaje máquina, para tablas.
Julio Pacheco SQL SERVER 2005 XML APRENDIENDO CON EJEMPLOS.
Windows XP sp3.
Introducción arquitectura base de datos Microsoft SQL Server 2000/2005
RENDIMIENTO Corporación Universitaria de Ciencia y Desarrollo Ing. Andrés Vargas -
On Line Analytical Processing
Johanna Lizeth Rodríguez Lorena Fda. Chávarro Ramos
Evaluación y Optimización de Consultas Láminas seleccionadas de las láminas de la Prof. María Esther Vidal.
Bases de Datos Relacionales
SQL Básico Prof. Nelliud D. Torres.
Como empezar en Access 2000 Abrir Access 2000 Pulsamos INICIO
Subconsultas Avanzadas
Bases de Datos II OLAP Online Analytical Processing
DATA MART Los data warehouses están hechos para proporcionar una fuente de datos única para todas las actividades de apoyo para la toma de decisiones.
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.
Estructura de Datos II Equipo 4 Equipo 7 Acosta Montiel Miguel A.
DATA WAREHOUSE Equipo 9.
(Organización y Manejo de Archivos)
Inteligencia de Negocios Buenos Aires, mayo de 2009 U.T.N. – F.R.B.A. Prof: Ing. Pablo Cigliuti Ayud: Ing. Rafael Rizzo.
COMANDOS SQL.
Página 1 20/03/2005 Materia: Tecnología de la Información Curso: Profesora Ariana Rosenthal Tecnología de la Información Profesora Ariana Rosenthal Administración.
REALIZADO POR: MERINO MERINO JORGE MORI CORREA JHONATAM VIDARTE DELGADO JAVIER.
MEDIOS DE ALMACENAMIENTO
Interprete SQL Julian Kiper Fernando Puletti. Requerimientos Construcción de un Intérprete SQL sobre Archivos Planos que pueda realizar: – Consultas sobre.
Teoría de Sistemas Operativos Administración de Archivos.
CICLO DE VIDA Y NORMAALIZACION DE UN SISTEMA DE BASE DE DATOS
LENGUAJE SQL.
Seminario de Informática Elementos Conceptuales
1 Prof:Paula Quitral INTRODUCCIÓN DATAWAREHOUSE Departamento de Informática Universidad de Rancagua.
Estructura de los Sistemas Operativos
COLEGIO DE BACHILLERES PLANTEL 13 XOCHIMILCO-TEPEPAN MATERIA:TIC EQUIPO:21 PRESENTACION: BASE DE DATOS ALUMNAS: Adán Millán Sánchez.
1 Por lo tanto, la creación de las tablas en el proceso de programación en Oracle juegan un papel muy importante. En el momento de crear las tablas se.
EQUIPO:#3 GRUPO:304 NOMBRES: Lizbeth Nava Barón y Erick Ali Mejía.
Banco de Datos Prof. Belinda Moné Frontera GSI 611.
Sistemas de Archivos Sistemas Operativos.  Se debe proporcionar un almacenamiento secundario que respalda a la memoria principal  El Sistema de archivos.
Diseño de una base de datos y elementos básicos Integrantes: López Ponce de León José Efrén Velazquez Martínez Brenda Equipo:10Grupo:307.
ISAE UNIVERSIDAD FACULTAD DE CIENCIAS TECNOLOGICAS TECNICO EN INFORMATICA CURSO TECNOLOGIA DE LA INFORMACIÒN Y COMUNICACIÒN PARTICIPANTES: DEXSI DELGADO.
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,
ORACLE OLAP CAECE Integrantes: *Aizaga, Martiniano *Gallegos, Marina *Kleinlein, Guillermo *Schiano di Cola, Emiliano.
Bases de Datos Unidad 1.
9º Encuentro Danysoft en Microsoft | | Ventajas competitivas de una solución empresarial Pablo F. Dueñas Campo | 9º Encuentro.
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.
INTERFAZ DE ACCESS  Access es un sistema gestor de bases de datos relacionales (SGBD). Una base de datos suele definirse como un conjunto de información.
MIA - Grupo 5 Unidad 2.

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.
Bases de Datos y Sistemas de Gestión de Bases Relacionales.
ACCESS Microsoft Access es un sistema de gestión de bases de datos incluido en el paquete ofimático denominado Microsoft Office. Es igualmente un gestor.
Ing. Ernesto Sierraalta Fundamentos de Desarrollo de Proyectos de Inteligencia de Negocios ( Decision Support Systems & Data Warehousing.
BASES DE DATOS CONCEPTOS BASICOS Elizabeth Maite Zarate Machaca “El tratamiento eficiente de la información al servicio del usuario”
¿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.
Bases de datos II Universidad del Cauca Ing. Wilson Ortega.
Una base de datos, a fin de ordenar la información de manera lógica, posee un orden que debe ser cumplido para acceder a la información de manera coherente.
Transcripción de la presentación:

INDEXADO EN DW

Recordando Base de Datos: sistema formado por un conjunto de datos almacenados en archivos en discos. Almacén de Datos: repositorio grande de datos que son accedidos por medio de una Aplicación de Procesamiento Analítico en Línea (OLAP). La mayoría de las consultas son sobre grandes cantidades de información, el procesamiento de estas consultas eficientemente es un asunto de suma importancia.

Cómo se almacenan los datos La estructura más simple de archivo es un archivo desordenado o archivo amontonado (heap file). Los registros en un heap son almacenados en orden aleatorio a través de las páginas del archivo. MSSQL master.mdf ORACLE System01.DBF Índice: estructura de datos que organiza los registros de datos en el disco para optimizar ciertos tipos de operaciones de recuperación.

Clustered Index Establecen el orden físico de los datos en la tabla, por ejemplo, si en la tabla cantones se establece como llave del índice el nombre del cantón, entonces los datos se ordenara físicamente por el nombre del cantón. Solo puede existir un Clustered index por tabla. Además de ordenar los datos de la tabla, se crea un árbol utilizando al campo llave, que guarda los punteros a los bloques del disco duro donde se encuentran los datos.

Non-Clustered Index Este tipo solo crea un una estructura que guarda los punteros a los bloques del disco duro donde se encuentran los datos, utilizando uno o más campos como llave. Se pueden tener tantos Non-Clustered index sobre una tabla como se necesiten. Si cuando se crea el Non-clustered index el Clustered index ya existe, el árbol se hace en base a este.

Cómo funcionan las consultas Query optimization Query Processor -Dictionary -Data -Metadata Hay índices? Cuántos niveles tiene? El índice es útil? Dictionary: Indices Data: Registros Metadata: Estadísticas

Cómo funcionan los índices Palmares >= Alajuelita? Palmares >=Moravia? Alajuelita Moravia Escazu … Tibas Alajuelita…………..…4526 Coronado……………...3265 Desamparados………..5897 Escazu……………..3612 Grecia……………...4322 Goicoechea………..1256 Moravia……….………8952 Naranjo………….…...1541 Palmares………….…..8412 Tibas……………...…1702 Turrialba….......…...2268 Upala…………...…..6987 SELECT CantidadHabitantes FROM Cantones WHERE Nombre = ‘Palmares’ Palmares >= Moravia? Palmares >=Tibas? 1256.....…..Goicoechea 1541……….Naranjo 1705……....Tibas 2268……....Turrialba 3265……...Coronado 3612……....Escazu 4322……..….Grecia 4526……..…..Alajuelita 5827…………Desamparados 6987………...Upala 8412………...Palmares 8952…………Moravia

Indices? Mejora rendimiento? 1 2 3 4 5 6 7 B-Tree Index 4 2 6 1 3 5 7

Utilizar índices no es trivial Pocos índices: La carga de datos es rápida. El tiempo de respuesta en las consultas es lento. Muchos índices: La carga de datos es lenta. La cantidad de espacio aumentará considerablemente. Pero reduce el tiempo de espera de las consultas. La utilización de índices es común en los Sistemas transaccionales (OLPT), pero las técnicas utilizadas en estos no pueden manejar tanto volumen de datos ni consultas tan complejas y dinámicas como las que hay en los OLAP.

OLTP vs OLAP OLTP OLAP Datos actuales Datos actuales e históricos Para procesamiento transaccional Para intereses de negocios Consultas simples y conocidas Consultas complejas (Ad hoc) Consultas sobre pocas tablas Consultas sobre múltiples tablas Foundset pequeños Foundset grandes Transacciones cortas Transacciones largas Update/Select Select (Solo Lecturas) Actualizaciones en tiempo real Actualizaciones masivas Ruta de acceso conocida Ruta de acceso no conocida Consulta de registros únicos Consulta agregadas y agrupadas Consultas de alta selectividad Consultas de poca selectividad Bajo procesamiento y bajo I/O Alto procesamiento y alto I/O Tiempo de respuesta no depende del tamaño de la DB Tiempo de respuesta depende del tamaño de la DB Modelo Entidad Relación Modelo multidimensional

Qué hay que saber primero? Características de la columna indexada: Cardinalidad: cantidad de distintos valores encontrados en la columna. Distribución: frecuencia con la que se encuentran esos distintos valores en la columna. Rango de Valores: valores máximo y mínimo que se encuentran en la columna.

Qué hay que saber primero? Características de los datos y las consultas: Conocer las columnas que serán utilizadas en la consulta es útil para elegir los apropiados tipos de índices que se ocuparán. (columnas seleccionadas, columnas utilizadas en los join, columnas utilizadas en el ORDER BY, columnas utilizadas en el GROUP BY)

Indexando dimensiones Las tablas de dimensiones tienen siempre una llave primaria, la cual no es una “llave natural”, en este caso no se debe utilizar índices “clustered“. La tabla de dimensión tendrá una llave natural o llave “transaccional”, cuya fuente es el sistema transaccional. Aunque esta llave pueda no ser única se debe crear un índice “clustered” utilizando esta columna, de esta manera se mejorará la respuesta de las consultas que utilicen esta llave en el WHERE.

Indexando dimensiones Utilizar la “llave natural” para crear el índice también ayuda a prevenir problemas de bloqueo escalado (registro-tabla, bloqueos de intensión) durante el proceso de ETL. Si se crea el índice sobre la llave primaria y el proceso de ETL debe agregar datos nuevos, estos se agregarán al final de la tabla (física) y provocará un bloqueo escalado de registro-tabla, lo cual afectaría otros procesos concurrentes.

Indexando dimensiones Si hay alguna otra columna en la tabla de dimensión que vaya a ser utilizada constantemente en búsquedas, ordenamientos y/o agrupamientos, entonces se deben crear índices non-clústered sobre esas columnas. Si existen jerarquías dentro de las tablas de dimensiones (categoría - subcategoría – producto), entonces se debe considerar agregar también un índice non-clústered que contenga los componentes de la jerarquía.

Indexando hechos Indexar las tablas de hechos es similar a indexar las dimensiones. La inteligencia de negocios la mayoría de las veces incluye el componente fecha/hora, por lo que la tabla de hechos siempre tendrá una columna con este valor y crear un índice clúster es la mejor opción para mejorar el rendimiento. También se deben crear índices no-clúster utilizando cada una de las llaves foráneas y se debe considerar crear índices combinando estas llaves foráneas y la columna de la fecha.

Indexando hechos (EXTRA) Para mejorar el rendimiento se puede utilizar particionamiento para la tabla de hechos, utilizando la columna de fecha como la llave del particionamiento y creando un índice clúster con esa misma columna. De esta manera el índice se particionará de la misma manera que la tabla, y se podría decir que la tabla y el índice están alineados, obteniendo un rendimiento óptimo a la hora de realizar las consultas.

Técnicas de indexado en DW Índice Árbol Balanceado: Cada objeto en la estructura de árbol es un grupo de claves del índice ordenadas llamadas páginas del índice. Listas Invertidas: Cada hoja del árbol apunta a un conjunto de una o más claves primarias (lista invertida), agrupadas por una llave secundaria. Este tipo de índice es típico para DW donde casi nunca hay actualizaciones.

Técnicas de indexado en DW Indice Bitmap: Cada hoja del árbol apunta a un mapa de bits para cada valor clave del índice. Cada bit del mapa corresponde a un rowid posible. Si el bit esta en 1, significa que el rowid contiene dicho valor clave. Útiles en DW para cuando se hace join entre grandes tablas de hechos y pequeñas tablas de dimensiones. Índice Join: Se crea sobre una tabla y cada hoja del árbol apunta al conjunto de registros que resultan de la operación join con otra tabla. Muy útil en XML DW ya que elimina la necesidad de la operación join a la hora de las consultas.

Listas Invertidas

Índice Bitmap

Índice Join

Sintaxis CREATE INDEX invertedList-index-name ON table_name USING gin(col_name);  PostgreSQL CREATE BITMAP INDEX bitmap-index-name ON table_name (col_name)  Oracle CREATE JOIN INDEX join-index-name FOR  join-clause IN dbspace-name  Sybase

Referencias Ramakrishnan – Gehrke Database Management System McGraw-Hill – 2003   Michelle A. Poolet Indexing the Data Warehouse http://www.sqlmag.com/article/sql-server-analysis-services/indexing-the-data-warehouse- Sirirut Vanichayobon Indexing Techniques for Data Warehouses’ Queries http://www.cs.ou.edu/~database/documents/vg99.pdf