Índice de creación de Oracle

Indice De Creacion De Oracle



En las bases de datos de Oracle, un índice hace referencia a una estructura de datos que aumenta la velocidad de las operaciones de recuperación de datos en una tabla de base de datos. Sin embargo, esto puede conllevar una penalización de operaciones de escritura adicionales y espacio de almacenamiento en su base de datos.

Un ejemplo de dónde sería útil un índice de base de datos es en un sistema de gestión de relaciones con el cliente.







En tal sistema, podemos tener una tabla de base de datos que almacene información del cliente. Esto podría incluir el nombre, la dirección, los métodos de pago, la información de contacto, etc.



Si la tabla contiene muchos registros, quizás millones de ellos, puede llevar mucho tiempo y recursos buscar información específica del cliente en la base de datos. Este es un fenómeno negativo, especialmente en bases de datos donde el rendimiento es crítico.



Para circunnavegar esto, podemos usar un índice de base de datos.





Por ejemplo, podemos crear un índice en la columna del nombre del cliente que permitiría que el sistema de la base de datos encuentre y recupere rápidamente la información de un cliente específico utilizando el nombre. Por lo tanto, en lugar de que el motor de la base de datos revise todas las filas y columnas de la tabla, solo usa el índice para buscar información del cliente.

En este tutorial, aprenderá a usar el comando CREATE INDEX en la base de datos de Oracle para inicializar un nuevo índice.



Declaración de índice de creación de Oracle

A continuación se muestra la sintaxis de la sentencia CREATE INDEX en bases de datos Oracle:

CREAR ÍNDICE nombre_índice
ON table_name (columna1, columna2, ...);

La sintaxis anterior crea un índice denominado nombre_índice en la tabla con el nombre nombre_tabla utilizando las columnas especificadas (columna1, columna2, etc.) como clave para el índice.

En Oracle, una clave principal es una columna o un conjunto de columnas que identifica de forma única cada fila de una tabla. De forma predeterminada, Oracle crea automáticamente un índice único en las columnas de clave principal de una tabla para hacer cumplir la restricción de unicidad y mejorar el rendimiento de las búsquedas de clave principal.

Sin embargo, en algunos casos, es posible que deba crear manualmente un nuevo índice para una tabla específica.

Veamos algunos ejemplos de cómo podemos lograr esto.

Ejemplo de creación de índice de Oracle

Supongamos que tenemos una tabla que contiene información de los empleados, como se muestra en el siguiente resultado:

seleccione nombre, apellido, salario, fecha de contratación de EMPLEADOS;

Oracle Create Index para una sola columna

Supongamos que deseamos crear un índice usando la columna first_name. Podemos ejecutar una consulta como se muestra:

crear índice first_name_lookup en EMPLOYEES(FIRST_NAME);

Esta sentencia CREATE INDEX crea un índice llamado first_name_lookup en la tabla EMPLOYEES, utilizando la columna FIRST_NAME como clave para el índice. Este índice se puede utilizar para mejorar el rendimiento de las consultas que buscan empleados por su nombre.

Una vez que tenemos el índice creado, podemos usarlo para buscar un empleado específico como se muestra:

SELECCIONE nombre, apellido, salario, fecha de contratación
DE empleados
WHERE nombre = 'Guillermo';

Resultado:

Sin el índice first_name_lookup, el sistema de base de datos tendría que escanear toda la tabla EMPLOYEES para encontrar todas las filas donde la columna FIRST_NAME es igual a 'William'. Sin embargo, con el índice en su lugar, el sistema de base de datos puede buscar rápidamente las filas en el index usando el valor 'John' como clave y luego recupere las filas solicitadas de la tabla, lo que será mucho más rápido.

Puede ver los pasos utilizados al realizar la consulta utilizando el comando del plan de explicación como se muestra:

explique el plan para SELECCIONAR nombre, apellido, salario, fecha de contratación
DE empleados
WHERE nombre = 'Guillermo';

Plan de consulta resultante:

Ejemplo 2: Oracle Create Index con varias columnas

De manera similar, podemos crear un índice compuesto por más de una columna en una tabla dada. Por ejemplo, supongamos que queremos crear un índice compuesto por la columna first_name y last_name.

Podemos usar el código como se muestra:

crear índice de búsqueda múltiple en EMPLEADOS (FIRST_NAME, LAST_NAME);

Esta sentencia CREATE INDEX crea un índice llamado multi_lookup en la tabla EMPLOYEES, utilizando las columnas FIRST_NAME y LAST_NAME como clave para el índice.

Una vez creado, podemos usar este índice como se muestra en la consulta de muestra como se muestra:

SELECCIONE nombre, apellido, salario, fecha de contratación
DE empleados
WHERE first_name = 'William' AND last_name = 'Smith';

Valor resultante:

Y allí, tiene un método para acelerar las consultas de su base de datos mediante el uso de índices para limitar el alcance de la búsqueda.

Conclusión

La declaración CREATE INDEX en Oracle nos permite crear un índice en una tabla para mejorar el rendimiento de las operaciones de recuperación de datos. Sin embargo, aunque los índices pueden mejorar el rendimiento de las consultas, también incurren en penalizaciones de espacio de almacenamiento, lo que lleva a operaciones de velocidad de escritura reducida, utilícelos solo cuando sea necesario.