Índices en firebird.pdf

Páginas: 6 (1267 palabras) Publicado: 17 de junio de 2013




















Índice
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 en una base de datos. Al aumentar drásticamente la velocidad de acceso, se suelen usar sobre aquellos campos sobre los cuales se hacen frecuentes búsquedas.
El índice tiene unfuncionamiento 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 dicho elemento para, una vez encontrado, devolver el registro que se encuentre en la posición marcada por el índice.
Los índices pueden ser creados usando una o más columnas, proporcionandola base tanto para búsquedas rápidas al azar como de un ordenado acceso a registros eficiente.
Índices en Firebird.
Los índices son estructuras auxiliares que utiliza el servidor para optimizar las consultas. Se construyen con los datos de un subconjunto de las columnas de la tabla a la que sirven, pero internamente en el servidor estos datos se almacenan de manera diferente para optimizar lasbúsquedas. Así, cuando se emite una instrucción SQL que debe buscar algún valor en una tabla, si esta tabla no tiene definido un índice sobre la columna en la que se busca entonces el servidor debe realizar una búsqueda secuencial –es decir, recorrer todos los registros hasta que encuentra el valor buscado. En cambio, si hay un índice sobre la columna buscada, el servidor automáticamente loutiliza y recorre la estructura del índice para encontrar el valor. La estructura del índice es tal que esta búsqueda sólo lleva unas pocas lecturas.
Como veremos en la sección de optimización de consultas, una de las principales armas del programador para acelerar el proceso de los datos son los índices y la forma en que se puede indicar al servidor que los utilice.
 Crear un índice
 CREATE INDEX Modificar un índice 
ALTER INDEX 
Borrar un índice 
DROP INDEX

Selectividad de los índices
Un concepto muy pero muy importante en Firebird es lo que se llama “selectividad de los índices”.
¿Qué significa eso?
Los índices sirven para dos cosas:
Para buscar un valor en una tabla
Para obtener los datos de una consulta ordenados
Pero tienen sus desventajas también:
Ocupan espacio en laBase de Datos (y por lo tanto en el disco duro)
Agregarle, borrarle o modificarle un dato a un índice toma su tiempo, no es instantáneo. Si la tabla tiene pocas filas entonces sus índices también serán pequeños y las inserciones rapidísimas pero si la tabla es grande (varias millones de filas)  los índices serán gigantescos e insertarles nuevos datos será bastante más lento
El peor índice, elinútil, el que para nada sirve es aquel que tiene todos sus valores idénticos. Por ejemplo, una tabla tiene una columna llamada SUCURSAL, esa tabla tiene millones de filas, pero en todas esas filas la columna SUCURSAL tiene el valor de cero. Por lo tanto, un índice según la columna SUCURSAL es totalmente inútil.
El mejor índice, el perfecto, es el que tiene todos sus valores distintos. Esa esjustamente una de las grandes ventajas de tener Primary Keys e Unique Keys, que sus índices están garantizados de tener todos los valores distintos.
Un índice muy malo es el que tiene pocos valores distintos. Por ejemplo en una tabla de PERSONAS hay una columna para guardar el sexo (masculino o femenino) de cada persona. Se crea un índice sobre esa columna. Pésima idea.
La selectividad de un índice esun número que nos dice cuan efectivo es ese índice y se calcula según esta fórmula:
Selectividad = 1 / Cantidad_de_filas_con_valores_distintos
La mejor selectividad que podría tener un índice se calcula según esta fórmula:
Mejor_Selectividad = 1 / Cantidad_total_de_filas_de_la_tabla
Cuanto más se acerque la selectividad a la mejor selectividad posible, mucho mejor. Veamos algunos ejemplos...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • LO QUE INDICAN LOS INDICADORES
  • Indices E Indicadores
  • Indicadores
  • Indicadores
  • Indicadores
  • Indicadores
  • indices
  • Indice

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS