SQL*Plus: Release 23.26.1.0.0 - Production on Sat Jun 6 22:44:12 2026 Version 23.26.1.0.0 Copyright (c) 1982, 2025, Oracle. All rights reserved. Last Successful login time: Sat Jun 06 2026 21:41:10 +00:00 Connected to: Oracle AI Database 26ai Enterprise Edition Release 23.26.1.0.0 - Production Version 23.26.1.0.0 SQL> CREATE VECTOR INDEX IDX_CHUNKS_EMBEDDING_HNSW ON documentos_pdf (EMBEDDING) ORGANIZATION INMEMORY NEIGHBOR GRAPH DISTANCE COSINE WITH TARGET ACCURACY 95 PARAMETERS ( TYPE HNSW, NEIGHBORS 32, EFCONSTRUCTION 500 ); ON documentos_pdf (EMBEDDING) * ERROR at line 2: ORA-51962: The vector memory area is out of space for the current container. Help: https://docs.oracle.com/error-help/db/ora-51962/ SQL> connect / as sysdba Connected. SQL> show user USER is "SYS" SQL> SHOW PARAMETER vector_memory_size; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ vector_memory_size big integer 0 SQL> alter system set vector_memory_size=1g scope=both; alter system set vector_memory_size=1g scope=both * ERROR at line 1: ORA-02097: parameter cannot be modified because specified value is invalid ORA-51950: The Oracle Database Vector Memory size cannot be increased. Help: https://docs.oracle.com/error-help/db/ora-02097/ SQL> alter system set vector_memory_size=1g scope=spfile; System altered. SQL> shutdown immediate Database closed. Database dismounted. ORACLE instance shut down. SQL> startup ORACLE instance started. Total System Global Area 1.5717E+10 bytes Fixed Size 5027392 bytes Variable Size 1979711488 bytes Database Buffers 1.2650E+10 bytes Redo Buffers 8855552 bytes Vector Memory Area 1073741824 bytes Database mounted. Database opened.
SQL> SHOW PARAMETER vector_memory_size; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ vector_memory_size big integer 1G SQL> connect sh/sh@pdb1 Connected SQL> CREATE VECTOR INDEX IDX_CHUNKS_EMBEDDING_HNSW ON documentos_pdf (EMBEDDING) ORGANIZATION INMEMORY NEIGHBOR GRAPH DISTANCE COSINE WITH TARGET ACCURACY 95 PARAMETERS ( TYPE HNSW, NEIGHBORS 32, EFCONSTRUCTION 500 );
Index created.
Para que sirve este índice.?índice vectorial HNSW sobre la columna
EMBEDDINGde la tablaDOCUMENTOS_PDFpara acelerar búsquedas de similitud semántica en Oracle AI Database 26ai.
Veámosla línea por línea:
CREATE VECTOR INDEX IDX_CHUNKS_EMBEDDING_HNSW
ON documentos_pdf (EMBEDDING)
- Crea un índice llamado
IDX_CHUNKS_EMBEDDING_HNSW. - El índice se construye sobre la columna
EMBEDDING. - Dicha columna contiene vectores generados por un modelo de embeddings
- (texto, imágenes, audio, etc.).
Ejemplo:
[0.125, -0.234, 0.567, ...]
Cada vector representa el significado semántico de un chunk de documento.
ORGANIZATION INMEMORY NEIGHBOR GRAPH
Indica que Oracle utilizará una estructura de datos optimizada para búsquedas
ANN (Approximate Nearest Neighbor).
En lugar de comparar el vector de búsqueda contra todos los registros de la tabla:
Vector Consulta
|
v
Comparar contra 10 millones de vectores
Oracle construye un grafo donde cada vector conoce a sus vecinos más cercanos:
A
/ | \
B C D
|\/ \|
E----F
La búsqueda "navega" por el grafo hasta encontrar los vectores más similares.
Beneficio:
- Mucho más rápido.
- Menor uso de CPU.
- Escalable a millones de embeddings.
DISTANCE COSINE
Define la métrica de similitud.
Oracle calculará: Cosine Similarity entre el vector buscado y los vectores almacenados.
Matemáticamente:
A · B
-------
|A||B|
Valores:
| Resultado | Interpretación |
|---|---|
| 1 | Idénticos |
| 0.9 | Muy similares |
| 0.5 | Relación moderada |
| 0 | Sin relación |
Para RAG y documentos generalmente es la opción más utilizada.
Ejemplo:
Consulta:"¿Qué es Oracle RAC?"
Aunque el documento diga:"Real Application Clusters permite..."
los embeddings tendrán direcciones parecidas y la distancia coseno será pequeña.
WITH TARGET ACCURACY 95
Oracle intentará devolver aproximadamente el 95% de los vecinos que encontraría
una búsqueda exacta.
Existe un compromiso entre:
| Exactitud | Velocidad |
|---|---|
| 100% | Más lenta |
| 95% | Muy rápida |
| 90% | Más rápida |
| 80% | Extremadamente rápida |
En RAG normalmente:
90 - 95 %
es un excelente equilibrio.
PARAMETERS
TYPE HNSW
Utiliza el algoritmo:Hierarchical Navigable Small World
Actualmente es uno de los algoritmos ANN más utilizados en sistemas vectoriales modernos.
También es usado en motores como:
- FAISS
- Milvus
- Qdrant
- OpenSearch
NEIGHBORS 32
También conocido como parámetro M en HNSW.
Indica cuántas conexiones tendrá cada nodo del grafo.
Visualmente:
Vector A
|
+----32 vecinos
Mayor valor: NEIGHBORS 64
- Más memoria.
- Índice más grande.
- Mejor calidad de búsqueda.
Menor valor:NEIGHBORS 16
- Menor tamaño.
- Menor precisión.
Valor 32 suele ser una configuración equilibrada.
EFCONSTRUCTION 500
EFCONSTRUCTION 500
Controla la calidad durante la construcción del índice.
Cuando Oracle inserta cada vector:
Nuevo Vector
|
v
Busca 500 candidatos
|
v
Escoge los mejores vecinos
Valores típicos:
| Valor | Calidad |
|---|---|
| 100 | Básica |
| 200 | Buena |
| 500 | Muy buena |
| 1000 | Excelente |
Con:EFCONSTRUCTION 500
Oracle dedica más trabajo al construir el índice para obtener mejores
resultados posteriormente.
Impacto:
- Creación más lenta.
- Índice de mayor calidad.
- Búsquedas más precisas.








