Documentos de Académico
Documentos de Profesional
Documentos de Cultura
--QUE ES UN INDICE?
Los índices son estructuras creadas en la base de datos y que permiten agilizar las
consultas sobre los datos.
En los índices se graban tuplas en la forma clave – dirección, es decir, cada tupla
del índice tiene el valor del campo a consultar y la dirección física de la tupla
que
contiene dicho valor, asemejándose al índice de un libro.
Se debe tener en cuenta que los índices aumentan el rendimiento de las consultas,
pero rebajan el rendimiento de las operaciones de actualización (INSERT –
UPDATE – DELETE). Por eso, a la hora de crear índices hay que poner “en la
balanza” esta situación y mirar cual conviene más
-- VAMOS A CONSULTAR LOS METADATOS DE LOS INDICES DE LAS DOS TABLAS CREADAS.
SELECT *
FROM v$object_usage
WHERE table_name = 'EMPLEADO1'; -- QUÉ VALOR TIENE EL CAMPO USED?
SELECT PLAN_TABLE_OUTPUT
FROM TABLE(DBMS_XPLAN.DISPLAY());
-- Por que razón hay que reconstruir un índice? Con el movimiento de los datos,
-- los índices van actualizándose, sufriendo fragmentación con el paso del tiempo.
-- El reconstruir un índice eliminamos esta fragmentación y hacemos que su
-- información quede físicamente contigua.
-- Este comando analiza la estructura actual del índice y graba los resultados
-- en la tabla INDEX_STATS. Por eso, después de ejecutar la anterior instrucción,
-- se procede a consultar dicha tabla:
-- CAMPO BITMAP
-- Existe otro tipo de indice en Oracle llamado Bitmap. Se recomienda crear este
-- tipo de indice cuando los valores de la columna a indexar no varian mucho, es
-- decir, cuando la columna no tiene muchos valores diferentes.
BEGIN
FOR CUR_REC IN 20000..40000 LOOP INSERT INTO EMPLEADO1
VALUES (CUR_REC, 'HHHH', NULL, NULL, NULL);
COMMIT;
END LOOP;
END;
-- Con esto nos aseguraremos que la tabla tendrá, mínimo, 20000 registros.
-- Verificarlo.
-- Se puede observar que dicha consulta usa el índice recién creado. Verificarlo.