INDEX_VECTOR_MEMORY_ADVISOR

特定のベクトル索引に必要なベクトル・メモリーのサイズを判断するには、INDEX_VECTOR_MEMORY_ADVISORプロシージャを使用します。これにより、シミュレートされた各ベクトル・メモリーのサイズに適合する索引の数を評価できます。

構文

  • ベクトル索引に格納するベクトルの次元の数およびタイプを使用する場合:

    DBMS_VECTOR.INDEX_VECTOR_MEMORY_ADVISOR(
        INDEX_TYPE        IN    VARCHAR2, 
        NUM_VECTORS       IN    NUMBER, 
        DIM_COUNT         IN    NUMBER, 
        DIM_TYPE          IN    VARCHAR2, 
        PARAMETER_JSON    IN    CLOB, 
        RESPONSE_JSON     OUT   CLOB);
  • ベクトル索引を作成する表列およびベクトル列を使用する場合:

    DBMS_VECTOR.INDEX_VECTOR_MEMORY_ADVISOR(
        TABLE_OWNER        IN    VARCHAR2, 
        TABLE_NAME         IN    VARCHAR2, 
        COLUMN_NAME        IN    VARCHAR2, 
        INDEX_TYPE         IN    VARCHAR2, 
        PARAMETER_JSON     IN    CLOB, 
        RESPONSE_JSON      OUT   CLOB);

表12-6 構文の詳細: INDEX_VECTOR_MEMORY_ADVISOR

パラメータ 説明

INDEX_TYPE

ベクトル索引のタイプ:

  • IVF: Inverted File Flat (IVF)ベクトル索引の場合

  • HNSW: Hierarchical Navigable Small World (HNSW)ベクトル索引の場合

NUM_VECTORS

ベクトル索引の作成に使用するベクトルの数。

DIM_COUNT

ベクトルの次元数(NUMBER)。

DIM_TYPE

ベクトルの次元のタイプ。使用可能な値は次のとおりです。

  • FLOAT16

  • FLOAT32

  • FLOAT64

  • INT8

TABLE_OWNER

ベクトル索引を作成する表の所有者名。

TABLE_NAME

ベクトル索引を作成する表名。

COLUMN_NAME

ベクトル索引を作成するベクトル列の名前。

PARAMETER_JSON

JSON形式の入力パラメータ。次のいずれかの形式のみを指定できます:

  • PARAMTER_JSON=>{"accuracy":value}

  • INDEX_TYPE=>IVF, parameter_json=>{"neighbor_partitions":value}

  • INDEX_TYPE=>HNSW, parameter_json=>{"neighbors":value}

ノート: accuracyの値をneighbor_partitionsまたはneighborsとともに指定することはできません。

RESPONSE_JSON

JSON形式のレスポンス文字列。

  • パラメータ・リストに近傍を使用する場合:

    SET SERVEROUTPUT ON;
    DECLARE
        response_json CLOB;
    BEGIN
        DBMS_VECTOR.INDEX_VECTOR_MEMORY_ADVISOR(
            INDEX_TYPE=>'HNSW', 
            NUM_VECTORS=>10000, 
            DIM_COUNT=>768, 
            DIM_TYPE=>'FLOAT32', 
            PARAMETER_JSON=>'{"neighbors":32}', 
            RESPONSE_JSON=>response_json);
    END;
    /

    結果:

    Suggested vector memory pool size: 59918628 Bytes
  • パラメータ・リストに精度を使用する場合:

    SET SERVEROUTPUT ON;
    DECLARE
        response_json CLOB;
    BEGIN
        DBMS_VECTOR.INDEX_VECTOR_MEMORY_ADVISOR(
            INDEX_TYPE=>'HNSW', 
            NUM_VECTORS=>10000, 
            DIM_COUNT=>768, 
            DIM_TYPE=>'FLOAT32', 
            PARAMETER_JSON=>'{"accuracy":90}', 
            RESPONSE_JSON=>response_json); 
    END;
    /

    結果:

    Suggested vector memory pool size: 53926765 Bytes
  • ベクトル索引を作成する表列およびベクトル列を使用する場合:

    SET SERVEROUTPUT ON;
    DECLARE
        response_json CLOB;
    BEGIN
        DBMS_VECTOR.INDEX_VECTOR_MEMORY_ADVISOR(
            'VECTOR_USER', 
            'VECTAB', 
            'DATA_VECTOR', 
            'HNSW', 
            RESPONSE_JSON=>response_json);
    END;
    /

    結果の例:

    Using default accuracy: 90% 
    Suggested vector memory pool size: 76396251 Bytes