Restrictions for Oracle AI Vector Search

The following are restrictions for Oracle AI Vector Search in Oracle AI Database 26ai.

  • The feature Open Neural Network Exchange (ONNX) is only supported on the x86-64 Linux and Linux for Arm (aarch64) platforms. ONNX is not supported on Microsoft Windows.
  • To size the Vector Pool manually, use the VECTOR_MEMORY_SIZE initialization parameter. You can dynamically modify this parameter at the following levels:
    • At the multitenant container database (CDB) level, VECTOR_MEMORY_SIZE specifies the current size of the Vector Pool. Reducing the parameter value evicts vector usage that exceeds the new size.
    • At the pluggable database (PDB), level VECTOR_MEMORY_SIZE specifies the maximum Vector Pool usage allowed by a PDB. Reducing the parameter value evicts vector usage that exceeds the new quota.

    Note:

    When VECTOR_MEMORY_SIZE is set to 1 and sga_target is greater than 0 upon CDB initialization, HNSW index creation will automatically grow the vector memory pool to satisfy the new index. In this configuration, the PDB VECTOR_MEMORY_SIZE value will default to 0 and cannot be changed using the ALTER SYSTEM command.
  • Table-Level Support

    • Truncate or move table operations are supported but will mark global vector indexes unusable.

    • Partition management (PMOP) operations (for example, DROP, TRUNCATE, EXCHANGE, MERGE, MOVE, COALESCE, and SPLIT) are supported with Global IVF and Global HNSW indexes. However, the following restrictions apply:

      • Local HNSW indexes are not supported.
      • Only ADD and DROP operations are supported on Local IVF indexes.
      • Any IVF or HNSW indexes that are created with included columns are not supported.

      In the case that the operation is not supported, either the index is marked unusable and the PMOP continues to complete its operation for other indexes on the table, or an ORA error is returned.

    • Adding a hash partition will also mark global vector indexes unusable. However, adding a range or list partition will not mark global vector indexes unusable.

    • Vector columns are not supported either in or as the following:

      • Index organized tables (IOTs) (neither as a primary key or as a non-key column)
      • Clusters or cluster tables
      • Global temporary tables
      • Blockchain tables
      • Immutable tables
      • Partitioning and subpartitioning keys
      • Primary and foreign keys
      • Unique constraints
      • Check constraints (NULL and NOT NULL check constraints are supported)
      • Default value
      • Modify column
      • Manual segment space management (MSSM) tablespace (only a SYS user can create vectors as BasicFiles in MSSM tablespace)
      • Continuous Query Notification (CQN) queries
      • Non-vector indexes such as B-tree, bitmap, reverse key, text, spatial indexes
    • For local Inverted Flat File (IVF) indexes:
      • ADD non-hash vector indexes are supported but will mark vector indexes unusable.
      • All other PMOP operations are not supported and return an error when attempted.
  • Type-Level Support

    Vector column specification does not support the following:

    • Encryption clause
    • SecureFiles storage clause
  • Query-Level Support

    • The partition row-limiting clause does not use vector indexes.

    • There is limited cost-based optimization support for vector indexes.

    • SQL constructs with vector columns do not support the following:

      • Distinct, Count Distinct
      • Order By, Group By
      • Join condition
      • Comparison operators (for example, >, <, =)
  • Index-Level Support

    • Vector indexes do not support the following:

      • IOTs
      • Clusters or cluster tables
      • Global temporary tables
      • Blockchain tables
      • Immutable tables
      • Materialized views
    • There is no support for the following:

      • Function-based IVF vector indexes.
      • Alter index DDL for HNSW vector indexes.
  • The latest python-oracledb, node-oracledb, JDBC, ODP.NET, and OCI drivers enable native binds.
    • All other SQL drivers need to use CLOBs or VARCHAR2 for binds and for vector definitions.
    • Oracle clients from release 19c and release 21c will see vectors as CLOBs.
  • Integration with the following is not supported:
    • Vector indexes with transportable tablespaces are not supported with Oracle Data Pump.
    • Oracle AI Database Advanced Queuing
    • Oracle AI Database Gateways
  • A maximum of 65535 dimensions is supported.
  • Data redaction is not supported for the VECTOR data type. Specifically, you cannot:
    • Add a data redaction policy on a vector column.
    • Alter a table to modify a column to the VECTOR data type if the column has a redaction policy defined on it.