The COMPACT_INDEX procedure is used to manually trigger the compaction process for HNSW vector indexes, specifically for the merging of incremental segments with the base segment. For more information about the principles of vector indexes, see Vector index principles.
Syntax
PROCEDURE COMPACT_INDEX(
IN TABLE_NAME VARCHAR(65535),
IN IDX_NAME VARCHAR(65535)
);
Parameters
Parameter |
Description |
|---|---|
| table_name | The name of the table. |
| idx_name | The name of the index. |
Examples
Create a test table.
CREATE TABLE vector_index_test(c1 INT, c2 VECTOR(3), PRIMARY KEY(c1), VECTOR INDEX idx1(c2) WITH (distance=l2, type=hnsw, lib=vsag));
Write test data.
INSERT INTO vector_index_test VALUES(1, '[0.203846,0.205289,0.880265]');
INSERT INTO vector_index_test VALUES(2, '[0.484526,0.669954,0.986755]');
INSERT INTO vector_index_test VALUES(3, '[0.327936,0.048756,0.084670]');
INSERT INTO vector_index_test VALUES(4, '[0.148869,0.878546,0.028024]');
INSERT INTO vector_index_test VALUES(5, '[0.334970,0.857377,0.886132]');
INSERT INTO vector_index_test VALUES(6, '[0.117582,0.302352,0.471198]');
INSERT INTO vector_index_test VALUES(7, '[0.551185,0.231134,0.075354]');
INSERT INTO vector_index_test VALUES(8, '[0.185221,0.315131,0.558301]');
INSERT INTO vector_index_test VALUES(9, '[0.928764,0.254038,0.272721]');
Trigger an update.
-- Trigger the compaction task.
CALL DBMS_VECTOR.COMPACT_INDEX('vector_index_test', 'idx1');
