Bases de Datos Índices

Documentos relacionados
5- Uso de sentencias avanzadas

6 - Recuperar algunos registros (where)

Motores MySQL. José Manuel Gómez. Departamento de Lenguajes y Sistemas Informáticos

INTRODUCCIÓN INTRODUCCIÓN INTRODUCCIÓN INTRODUCCIÓN INSTRUCCIONES DE DEFINICIÓN DE TABLAS E ÍNDICES INSTRUCCIONES DE DEFINICIÓN DE TABLAS E ÍNDICES

Operaciones con bases de

OPTIMIZACIÓN DE CONSULTAS EN SQL. Análisis de Consultas y Transacciones Ajuste de Indices Ajuste de Consultas

m047a Curso Programando una Base de Datos SQL Server 2008, 36 h Creación B.D. y Constraints

Base de datos Lenguaje SQL

Restricciones (constraints) FOREIGN KEY

Bases de Datos Relacionales

2. Mediante la tabla pg_class, vamos a ver cómo afecta los comandos analyze y vacuum a las tablas.

Consultas con combinaciones

Diseño de bases de datos

BASE DE DATOS QUÉ ES UNA BASE DE DATOS?

BASES DE DATOS - SQL. Javier Enciso

Tablas internas 1-12

BASES DE DATOS AVANZADAS Transacciones en MYSQL

Bases de datos relacionales y el modelo entidad-relación

INSTITUCIÓN EDUCATIVA GABRIEL GARCIA MÁRQUEZ BASE DE DATOS. DESARROLLO DE SOFTWARE Página 1 de 28 SQL SQL

UNIDAD 3 ASPECTOS ASOCIADOS CON BASES DE DATOS. Diseno Físico de Bases de Datos Objetivo. 2.2 Visión General del Procesamiento de Consultas

Trabajos de Ampliación. Bases de datos NoSQL.

Estándar de desarrollo de aplicaciones del Govern de les Illes Balears

Restricciones de Integridad

T12 Vistas y tablas temporales

Base de datos I Facultad de Ingeniería. Escuela de computación.

A.1. Definiciones de datos en SQL

Structured Query Language. Práctica

Constraints (Restricciones) Copyright Oracle Corporation, All rights reserved.

Universidad Nacional de Costa Rica Administración de Bases de Datos

Creación y Gestión de Tablas. Copyright Oracle Corporation, All rights reserved.

LENGUAJE DE CONSULTA ESTRUCTURADO - SQL CONTENIDO

APUNTES: APLICACIONES WEB BASADAS EN PHP Y MYSQL Página 1 de 5

PROCEDIMIENTOS ALMACENADOS Y TRIGGERS. Bases de Datos Ingeniería de Sistemas y Computación Universidad Nacional de Colombia 2007

UNIVERSIDAD NACIONAL DE SAN AGUSTÍN FACULTAD DE PRODUCCIÓN Y SERVICIOS ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS LABORATORIO DE BASES DE DATOS 1

Si queremos modificar la contraseña de sys, una vez que accedamos al sistema como sys, escribiremos la sentencia:

APÉNDICE SQL (Structures Query Language)

Integridad y Seguridad en los sistemas de Bases de Datos. Javier Escobar Luis Ramirez Omar Asprino

ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA Programación de sitios web Act 11: Reconocimiento de la unidad 3

- Bases de Datos - - Diseño Físico - Luis D. García

Tablas y Campos Nuevos

SQL (Structured Query Language)

Base de Datos Práctica 1.

MANUAL BÁSICO DEL LENGUAJE SQL

OBJETIVOS METODOLOGÍA PROCEDIMIENTO 1.- Trabajo con el servidor de bases de datos Sybase

Formatos para prácticas de laboratorio

Implementación de la integridad de datos

Sintaxis: CURSOR nombre_cursor[(param1 [IN] tipo1,... )] IS consulta ;

4. Modelo Relacional: Manipulación de los datos.

Base de datos relacional

CONSULTAS BASICAS EN SQL SERVER

Bases de Datos 2. Teórico

Manejo de datos BLOB con PHP y MySQL

Procedimientos, Funciones, Trigger y Cursores en ORACLE

6- Combinación de tablas

Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros

M. C. Gustavo Alfonso Gutiérrez Carreón

BASES DE DATOS TEMA 4. SQL. UN LENGUAJE DE CONSULTA COMERCIAL PARA BASES DE DATOS RELACIONALES Contenidos generales

Lenguaje de Consulta Estructurado S Q. Lenguaje de Consulta Estructurado. Wael Najjar /

Introducción a los Sistemas de Gestión de Bases de Datos

`ALTER TABLE' cambia la estructura de una tabla ya existente.

TEMA 6: MODIFICACIÓN DE LA BASE DE DATOS EN SQL

Iniciando con Oracle. Índice de contenido. Ingresando a Oracle. Cambiando Su Contraseña. Ingresando un Comando SQL en SQL*Plus

Son objetos cuya función es el tratamiento de varios registros exclusivamente durante la ejecución de un programa.

Utilización del programa de Orabench Versión para Migración. Describir los pasos para la utilización del programa Orabench de Oracle.

Esta extensión está obsoleta a partir de PHP 5.5.0, y será eliminada en el futuro

Conceptos Avanzados de Bases de datos

2- Creación de tablas y manejos de datos.

LEER Y ESCRIBIR ARCHIVOS O FICHEROS EN C. FOPEN, FCLOSE, MODOS DE ACCESO READ, WRITE Y APPEND (CU00536F)

Oracle SQL Loader. Contenidos. Introducción:

MANUALITO MS-SQL SERVER

ADMINISTRACIÓN DE BASE DE DATOS

Objetos de la Base de Datos

UNIVERSIDAD AUTONOMA DE LOS ANDES UNIANDES LENGUAJE SQL. SQL es un estándar un lenguaje estructurado para consultas

Oracle Básico PL/SQL

Permite definir cada relación que pertenece a la base de datos relacional, incluyendo:

Procesamiento de Consultas. Carlos A. Olarte BDII

UNIVERSIDAD NACIONAL DE ASUNCION FACULTAD POLITÉCNICA CARRERA: LCIK MATERIA: Bases de Datos I Prof: Lic. Lilian Riveros Unidad 2: Modelo Relacional

3. El catálogo 26. Laboratorio de Bases de Datos

Nuevas Características de la Versión 9.1 de PostgreSQL. Alcides Rivera Posso

Acceso a bases de datos MySQL con PHP

Microsoft Excel. El Documento Excel. Interfase de Programa. Celdas

Principios de diseño de bases de datos. Introducción

Administración Local Soluciones

Resumen. El rol del lenguaje SQL en los SGBDR y en la Relacional. cjimenez@inf.udec.cl, tamrstro@inf.udec.cl

Tipos de Datos Compuestos. Copyright Oracle Corporation, All rights reserved.

Base de datos I Facultad de Ingeniería. Escuela de computación.

COMANDOS DE SQL, OPERADORES, CLAUSULAS Y CONSULTAS SIMPLES DE SELECCIÓN

T ema 2. S is tem as ges tores de bas es de datos

Bases de Datos. Sistemas de Gestión de Bases de Datos

Requisitos para la generación de Xml válido

PL/SQL. Con PL/SQL vamos a poder programar las unidades de programa de la base de datos Oracle:

La calidad de los datos ha mejorado, se ha avanzado en la construcción de reglas de integridad.

Árbol binario. Elaborado por Ricardo Cárdenas cruz Jeremías Martínez Guadarrama Que es un árbol Introducción

Descriptor del curso. Nombre del curso: Haciendo consultas en SQL Server Descripción:

USANDO SQL. EN BASE DE Ooo.

Transcripción:

Bases de Datos Índices

Table scan Un table scan es una búsqueda en donde se leen todas las filas de una tabla Una tabla que no tenga índices creados, solamente puede hacer búsquedas a través de un table scan

Indices Un índice es un objeto de base de datos que ayuda al servidor a encontrar un dato más rápidamente

Estructura de un Indice : Caso de Estudio key Bennet Karsen Smith row ptr PAGE 1001 1421, 1 1007 1876, 1 1242, 1 1305 1062 pg ptr key Bennet Greane Hunter Index pages row ptr PAGE 1007 1421, 1 1132 1242, 4 1242, 1 1133 1127 PAGE 1305 Karsen 1876, 1 1311 pg ptr (more pages) create index idx_authors_2 on authors(au_lname) PAGE 1132 Bennet 1421, 1 Chan 1129, 3 Dull 1409, 1 Edwards 1018, 5 PAGE 1133 Greane 1242, 4 Green 1421, 2 Greene 1409, 2 PAGE 1127 Hunter 1242, 1 Jenkins 1241, 4 (more pages) authors table (data pages) PAGE 1241 10 O Leary 11 Ringer 12 White 13 Jenkins PAGE 1242 14 Hunter 15 Smith 16 Ringer 17 Greane PAGE 1421 18 Bennet 19 Green 20 Ringer PAGE 1409 21 Dull 22 Greene 23 White (more pages)

Crear y borrar índices Sintaxis simplificada para create : create [unique] [ clustered nonclustered ] index index_name on table_name (column1 [, column2]... ) Ejemplo: create clustered index idx_c_titles_1 on titles (title_id) Sintaxis Simplicada para drop : drop index table_name.index_name Ejemplo: drop index titles.idx_c_titles_1

Atributos de los índices Tres atributos describen cada índice El número de columnas sobre las cuales se declara el índice Una columna índice no-compuesto Múltiples columnas - índice compuesto Si el índice acepta o no valores duplicados Se permiten valores duplicados - índice no-único No se permiten valores duplicados - índice único Si están o no ordenados los datos en la tabla por el concepto del índice cuando la tabla se crea Datos ordenados durante la creación - índice cluster Datos no ordenados durante la creación - índice no-cluster

Indice no-compuesto Un índice no-compuesto es un índice creado sobre una columna create index idx_authors_2 on authors(state) Apropiado cuando las consultas se hacen frecuentemente sobre una sola columna select * from authors where state = "UT"

Indice compuesto Un índice compuesto es un índice creado sobre dos o más columnas create index idx_authors_3 on authors(au_lname, au_fname) Apropiado cuando las consultas se hacen sobre múltiples columnas select * from authors where au_lname = "Ringer" and au_fname = "Anne"

Indice no-único Un Indice No-único es un índice que permite valores duplicados create index idx_authors_2 on authors(state) Apropriado cuando las consultas se hacen sobre valores duplicados select * from authors where state = "UT"

Indice único Un índice único es un índice que no permite valores duplicados create unique index idx_u_authors_1 on authors(au_id) Apropiado cuando cada valor en la columna indizada debe ser único select * from authors where au_id = "213-46-8915" Puede ser creado solamente sobre columnas que no tengan valores duplicados

Indice no-cluster Un índice no-cluster es un índice que utiliza un concepto de ordenamiento diferente a como se realizó el almacenamiento de la tabla create nonclustered index idx_authors_4 on authors(state) Una tabla puede tener muchos índices no-cluster Apropiado para: Tablas que ya tienen un índice cluster

Estructura de un índice no-cluster key Bennet Karsen Smith row ptr pg ptr PAGE 1001 1421, 1 1007 1876, 1 1242, 1 1305 1062 key Bennet Greane Hunter Index pages root level intermediate level leaf level create index idx_authors_2 on authors(au_lname) row ptr PAGE 1007 1421, 1 1132 1242, 4 1242, 1 1133 1127 PAGE 1305 Karsen 1876, 1 1311 pg ptr (more pages) key PAGE 1132 Bennet 1421, 1 Chan Dull 1129, 3 1409, 1 Edwards 1018, 5 PAGE 1133 Greane 1242, 4 Green Greene 1421, 2 1409, 2 PAGE 1127 Hunter 1242, 1 Jenkins row ptr 1241, 4 (more pages) authors table (data pages) PAGE 1241 10 O Leary 11 Ringer 12 White 13 Jenkins PAGE 1242 14 Hunter 15 Smith 16 Ringer 17 Greane PAGE 1421 18 Bennet 19 Green 20 Ringer PAGE 1409 21 Dull 22 Greene 23 White (more pages)

Indice cluster Un índice cluster es un índice que, cuando se crea, indica cómo están físicamente almacenados los datos en la tabla create clustered index idx_c_authors_1 on authors(au_id) Una tabla sólo puede contener un índice cluster Típicamente mejora el rendimientos de las consultas que se hacen a una tabla Consultas con valor único (where state = ''CA'') Consultas por rango de valores (where price > $10.00) Puede dismuir el rendimiento en operaciones de modificación de los datos de una tabla Esta reducción se debe a que se deben almacenar físicamente los datos ordenados

Etructura de un índice cluster key Bennet Karsen Smith root level PAGE 1001 pg ptr 1007 1305 key Bennet Greane Hunter Index pages intermediate level PAGE 1007 pg ptr 1241 1242 1421 1062 PAGE 1305 Karsen 1409 authors table (leaf/data pages) PAGE 1241 10 Bennet 11 Chan 12 Dull 13 Edwards PAGE 1242 14 Greane 15 Green 16 Greene 17 PAGE 1421 18 Hunter 19 Jenkins 20 create clustered index idx_authors_2 on authors(au_lname) (more pages) PAGE 1409 21 Karsen 22 O'Leary 23 Ringer (more pages)

Escritura de consultas que usen índices Los índice se usan solamente cuando una consulta hace referencia a columna(s) indizada(s) en la cláusula where Si una tabla: Tiene dos columnas, y Cualquiera puede identificar una fila desada, y Una columna está indizada mientras la otra no, entonces Se debe utilizar la columna indizada en la cláusula where de la consulta

Ejemplo usando índices crear una tabla: create table novels ( book_id int, title varchar(40), author varchar(40) ) Insertar tres filas: insert into novels values (1, "Congo", "M Crichton") insert into novels values (2, "The Client", "J Grisham") insert into novels values (3, "Jurassic Park", "M Crichton")

crear una tabla: create table novels ( book_id int, title varchar(40), author varchar(40) ) Insertar tres filas: insert into novels values (1, "Congo", "M Crichton") insert into novels values (2, "The Client", "J Grisham") insert into novels values (3, "Jurassic Park", "M Crichton") Ejecutar las sentencias create clustered index idx_c_novels_1 on novels(book_id) create unique index idx_u_novels_2 on novels(author) Qué sentencia falla? Por qué? Borrar los objetos creados: drop index novels.idx_c_novels_1 drop table novels