Autor

Alejandro Alcalde

Graduado en Ingeniería Informática en la ETSIIT, Granada.

Más artículos de Alejandro Alcalde

Creación de un índice

Los índices sirven para mejorar el rendimiento de las consultas. El optimizador de Oracle los utiliza implícitamente y se actualizan de forma automática al actualizar las filas.

En general, los índices se crean sobre todas las claves externas y sobre los criterios de búsqueda actuales.


Ayúdanos a seguir escribiendo


CREATE [unique] INDEX nombre_indice
ON nombre_tabla (columnas [{asc | desc}] [,.....])
[TABLESPACE Nombre_Tablespace]

Ejemplo:

-- Creacion de un índice en una columna simple para hacer las consultas más rápidas
CREATE INDEX emp_hiredate_idx ON employees (hire_date);

Borrado de un índice

Cuando se borra una tabla, automáticamente se borran los índices asociados a ella. Los índices ocupan espacio dentro de la BD como si de una tabla se tratara y por esa razón se aconseja tener solo como índices aquellas columnas por las cuales se realizan consultas de forma periódica. Para borrar un índice se utiliza la orden:

drop index nombre_indice;

Creación de una secuencia

Las secuencias se utilizan para generar números de forma automática, sin embargo, esto no garantiza la ausencia de ‘huecos’: si se solicitan números a una secuencia y no se utilizan, estos valores se pierdan.

CREATE SEQUENCE Nombre_secuencia
[INCREMENT BY entero]
[START WITH entero]
[{MAXVALUE entero | NOMAXVALUE}]
[{MINVALUE entero | NOMINVALUE}]
[{CYCLE | NOCYCLE}] [{ORDER | NOODER}]

Utilización de las secuencias

Ejemplo:

CREATE SEQUENCE new_employees_seq START WITH 1000 INCREMENT BY 1;

-- Para usar la secuencia, primero hay que inicializarla con nextval

SELECT new_employees_seq.NEXTVAL FROM DUAL;

--Despues de inicializarla, usamos currval para usar el valor actual

INSERT INTO employees VALUES
  (new_employees_seq.CURRVAL, 'Pilar', 'Valdivia', 'pilar.valdivia',
  '555.111.3333', '01-SEP-05', 'AC_MGR', 9100, .1, 101, 110);

--Consultamos la tabla de trabajadores para comprobar el valor actual de la secuencia.

SELECT employee_id, last_name FROM employees WHERE last_name = 'Valdivia';

Siguiente Tema: Lenguaje Definición de Datos (DDL) - Sinónimos y Pseudocolumnas

Quizá también te interese leer...