Gestión DE Índices SGBD Oracle PDF

Title Gestión DE Índices SGBD Oracle
Author Anonymous User
Course Lenguajes de Programación
Institution Universidad Nacional Pedro Ruiz Gallo
Pages 4
File Size 96.6 KB
File Type PDF
Total Downloads 27
Total Views 130

Summary

informe...


Description

GESTIÓN DE ÍNDICES SGBD Oracle

Definición de índice ¿qué es un índice? ¿para qué sirve? El índice de una base de datos es una estructura de datos que mejora la velocidad de las operaciones, permitiendo un rápido acceso a los registros de una tabla. Al aumentar drásticamente la velocidad de acceso, se suelen usar sobre aquellos campos sobre los cuales se vayan a realizar búsquedas frecuentes. El índice tiene un funcionamiento similar al índice de un libro, guardando parejas de elementos: el elemento que se desea indexar y su posición en la base de datos. Para buscar un elemento que esté indexado, sólo hay que buscar en el índice de dicho elemento para, una vez encontrado, devolver el registro que se encuentre en la posición marcada por el índice.

El índice de una tabla desempeña la misma función que el índice de un libro: permite encontrar datos rápidamente; en el caso de las tablas, localiza registros. Es una estructura definida sobre una o varias columnas de una tabla; la (las) columna(s) constituye(n) la clave del índice. El índice permite un acceso rápido a las líneas de la tabla durante la ejecución de una búsqueda basada en la clave del índice. Un índice es física y lógicamente independiente de la tabla. Puede crearse/modificarse sin afectar a la tabla de base (salvo su impacto sobre el rendimiento cuando el índice se elimina). Un índice necesita su propio espacio de almacenamiento. Oracle accede a los datos de dos maneras: 1) Recorriendo las tablas; comenzando el principio y extrayendo los registros que cumplen las condiciones de la consulta; lo cual implica posicionar las cabezas lectoras, leer el dato, controlar si coincide con lo que se busca (como si pasáramos una a una las páginas de un libro buscando un tema específico). 2) Empleando índices; recorriendo la estructura de árbol del índice para localizar los registros y extrayendo los que cumplen las condiciones de la consulta (comparando con un libro, diremos que es como leer el índice y luego de encontrar el tema buscado, ir directamente a la página indicada). El objetivo de un índice es acelerar la recuperación de información. La indexación es una técnica que optimiza el acceso a los datos, mejora el rendimiento acelerando las consultas y otras operaciones. Es útil cuando la tabla contiene miles de registros, cuando se realizan operaciones de

ordenamiento y agrupamiento y cuando se combinan varias tablas (tema que veremos más adelante). La desventaja es que consume espacio en el disco y genera costo de mantenimiento (tiempo y recursos). Es importante identificar el o los campos por los que sería útil crear un índice, aquellos campos por los cuales se realizan búsquedas con frecuencia: claves primarias, claves externas o campos que combinan tablas. No se recomienda crear índices sobre campos que no se usan con frecuencia en consultas o en tablas muy pequeñas. Los cambios sobre la tabla, como inserción, actualización o eliminación de registros, son incorporados automáticamente. Los índices se actualizan automáticamente y Oracle los utiliza: 

En las búsquedas si se menciona cláusula WHERE de una consulta;

una

clave

de

índice



Actualizados en cada actualización (INSERT, UPDATE, DELETE).

en

la

La presencia o ausencia de un índice es completamente transparente para la aplicación; es Oracle quién utiliza (o no) los índices automáticamente. El mantenimiento actualizaciones.

de

los

índices

afecta

al

rendimiento

de

las

TIPOS DE ÍNDICES EN ORACLE 





Lectura/Escritura  B-tree (árboles binarios)  Function Based  Reserve key Sólo lectura (read only)  Bitmap  Bitmap join  Index-organized table (algunas veces usados en lectura/escritura)  Cluster y hash cluster Domain (muy específicos en aplicaciones Oracle)

ÍNDICES CREADOS POR ORACLE DE MANERA AUTOMÁTICA 

Al crearse la tabla se crea:  Un índice UNIQUE basado en B*-tree para mantener las columnas que se hayan definido como clave primaria de una tabla utilizando el constraint PRIMARY KEY de una tabla no organizada por índice.  Un índice UNIQUE basado en B*-tree para mantener la restricción de unicidad de cada grupo de columnas que se haya declarado como único utilizando el constraint UNIQUE.  Un índice basado en B*-tree para mantener las columnas que se hayan definido como clave primaria y todas las filas de una tabla organizada por índice.

 Un índice basado en hashing para mantener las filas de un grupo de tablas (“cluster”) organizado por hash. Cuando creamos una restricción "primary key" o "unique" a una tabla, Oracle automáticamente crea un índice sobre el campo (o los campos) de la restricción y le da el mismo nombre que la restricción. En caso que la tabla ya tenga un índice, Oracle lo usa, no crea otro. Oracle permite crear distintos tipos de índices. "Normal" es el standard de Oracle, son índices tipo árbol binario; contiene una entrada por cada valor de clave que almacena la dirección donde se encuentra el dato. Es el tipo predeterminado y el más común (el único que estudiaremos). CONSIDERACIONES DE LOS ÍNDICES   

Un índice sólo es efectivo cuando es utilizado. El mantenimiento de un índice tiene efecto sobre el rendimiento de las operaciones de eliminación, inserción y actualización. ORACLE impone dos restricciones:  El número máximo de columnas: Btree  32 col. Bitmap  30 col.  El espacio requerido para almacenar una clave no puede exceder la mitad del espacio disponible para almacenar datos en un bloque ORACLE

REGLAS EN EL DISEÑO DE ÍNDICES  Indexe solamente las tablas cuando las consultas no accedan a una gran cantidad de filas de la tabla.  No indexe tablas que son actualizadas con mucha frecuencia.  Indexe aquellas tablas que no tengan muchos valores repetidos en las columnas escogidas.  Las consultas muy complejas (en la cláusula WHERE) por lo general no toman mucha ventaja de los índices. SINTAXIS: CREACIÓN 

Básica CREATE INDEX nombre_indice (columna1 [, columna2, ...])



ON

Básica ALTER INDEX [schema.]index options

SINTAXIS: ELIMINACIÓN 

nombre_tabla

UNIQUE garantizan que en una tabla (o “cluster”) no puedan existir dos filas con el mismo valor.

SINTAXIS: MODIFICACIÓN 

[esquema.]

Básica DROP INDEX [schema.]index [FORCE]

ESTRUCTURA: B*-TREE

Se estructura como un árbol cuya raíz contiene múltiples entradas y valores de claves que apuntan al siguiente nivel del árbol. 

Nivel 0. Tablas pequeñas de datos estáticos.



Nivel 1. Indexa tablas dinámicas con el valor único de los identificadores de columna.



Nivel 2. Indexa largas tablas o con poca cardinalidad

https://www.ajpdsoft.com/modules.php?name=News&file=article&sid=449 COMO HACERLO...


Similar Free PDFs