Saltar al contenido
DBAExperts
Oracle Rendimiento

Cómo crear un índice en Oracle y cuándo usar bitmap

Un índice acelera búsquedas pero cuesta espacio y ralentiza escrituras. Elegir el tipo correcto importa tanto como crearlo.

  1. 1

    Crea un índice B-tree

    Es el índice por defecto y sirve para la mayoría de consultas por igualdad o rango.

    CREATE INDEX idx_pedidos_cliente ON pedidos (cliente_id);
  2. 2

    Índices compuestos para filtros combinados

    Ordena las columnas según cómo filtra la consulta; la más selectiva o la usada en igualdad suele ir primero.

    CREATE INDEX idx_pedidos_cli_fecha ON pedidos (cliente_id, fecha);
  3. 3

    Usa bitmap solo en baja cardinalidad

    Bitmap conviene en columnas con pocos valores distintos y cargas de solo lectura o DWH. En OLTP con escrituras concurrentes causa bloqueos serios.

    CREATE BITMAP INDEX idx_pedidos_estatus ON pedidos (estatus);
  4. 4

    Reúne estadísticas

    El optimizador necesita estadísticas frescas para decidir usar el índice.

    EXEC DBMS_STATS.GATHER_TABLE_STATS('VENTAS','PEDIDOS');
  5. 5

    Verifica que el índice se use

    Revisa el plan de ejecución. Un índice que nadie usa solo pesa en las escrituras.

    EXPLAIN PLAN FOR SELECT * FROM pedidos WHERE cliente_id = 100;
    SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);

// el error común

Un índice bitmap en una tabla OLTP con inserciones o updates concurrentes bloquea rangos completos de filas y degrada el rendimiento.

// cuándo conviene un experto

Si tienes muchos índices y no sabes cuáles ayudan o si las consultas siguen lentas pese a indexar, vale la pena un análisis. En dba.mx afinamos indexación con techo cerrado.

Agenda un Escaneo — desde USD $550

Esta guía es orientativa y usa comandos de referencia. En producción, adapta a tu versión y prueba en un ambiente seguro primero.