ベクトル索引のステータス、チェックポイントおよびアドバイザのプロシージャ
DBMS_VECTOR
PL/SQLパッケージで使用可能なGET_INDEX_STATUS
、ENABLE_CHECKPOINT
、DISABLE_CHECKPOINT
およびINDEX_VECTOR_MEMORY_ADVISOR
プロシージャの概要を示します。
GET_INDEX_STATUS
用途: ベクトル索引作成のステータスを問い合せます。
構文:
DBMS_VECTOR.GET_INDEX_STATUS ('USER_NAME','INDEX_NAME');
使用上のノート:
-
GET_INDEX_STATUS
プロシージャを使用できるのは、ベクトル索引の作成時のみです。 -
Percentage
値は、Hierarchical Navigable Small World (HNSW)索引の場合にのみ出力に表示されます(Inverted File Flat (IVF)索引の場合には表示されません)。 -
DB_DEVELOPER_ROLE
権限とともに、VECSYS.VECTOR$INDEX$BUILD$
表への読取りアクセス権が必要です。 -
次の問合せを使用すると、すべての補助表を表示できます:
select IDX_AUXILIARY_TABLES from vecsys.vector$index;
-
HNSW索引の場合:
rowid_vid_map
には、行IDとベクトルIDの間のマッピングが格納されます。shared_journal_change_log
には、HNSWグラフにまだ取り込まれていないDML変更が格納されます。 -
IVF索引の場合:
centroids
には、各重心の位置が格納されます。centroid_partitions
には、各ベクトルの最も近い重心が格納されます。
-
-
HNSWベクトル索引に使用できる
Stage
の値は、次のとおりです:値 説明 HNSW Index Initialization
HNSWベクトル索引作成の初期化フェーズ
HNSW Index Auxiliary Tables Creation
HNSW近傍グラフ・ベクトル索引の内部補助表の作成
HNSW Index Graph Allocation
HNSWグラフのベクトル・メモリー・プールからのメモリーの割当て
HNSW Index Loading Vectors
ベクトル・プール・メモリーへの実表ベクトルのロード
HNSW Index Graph Construction
以前にロードされたベクトルを使用した多層HNSWグラフの作成
HNSW Index Creation Completed
HNSWベクトル索引の作成が終了しました
-
IVFベクトル索引に使用できる
Stage
の値は、次のとおりです:値 説明 IVF Index Initialization
IVFベクトル索引作成の初期化フェーズ
IVF Index Centroids Creation
実表のベクトルのサンプルでクラスタの重心を計算するK-meansクラスタリング・フェーズ
IVF Index Centroid Partitions Creation
実表ベクトルの重心割当フェーズ
IVF Index Creation Completed
IVFベクトル索引の作成が完了しました
例:
exec DBMS_VECTOR.GET_INDEX_STATUS('VECTOR_USER','VIDX_HNSW');
Index objn: 74745
Stage: HNSW Index Loading Vectors
Percentage: 80%
ENABLE_CHECKPOINT
用途: 特定のHNSW索引ユーザーおよびHNSW索引名に対してチェックポイント機能を有効にします。
ノート:
このプロシージャでは、索引のチェックポイント作成のみが許可されます。チェックポイントは、HNSWグラフの次のリフレッシュの一部として作成されます。INDEX_NAME
句はオプションです。索引名を指定しない場合、このプロシージャは、指定されたユーザーのすべてのHNSW索引に対してチェックポイント機能を有効にします。
構文:
DBMS_VECTOR.ENABLE_CHECKPOINT('INDEX_USER',['INDEX_NAME']);
例1: 索引名および索引ユーザーの使用:
DBMS_VECTOR.ENABLE_CHECKPOINT('VECTOR_USER','VIDX1');
例2: 索引ユーザーの使用:
DBMS_VECTOR.ENABLE_CHECKPOINT('VECTOR_USER');
ノート:
デフォルトでは、HNSWでのチェックポイント作成は有効です。DBMS_VECTOR.DISABLE_CHECKPOINT
プロシージャを使用して無効にできます。
DISABLE_CHECKPOINT
用途: 古いチェックポイント・データをすべてパージします。このプロシージャは、特定のHNSW索引ユーザーおよびHNSW索引名に対するチェックポイント機能を無効にします。また、HNSWグラフのリフレッシュの一部としての今後のチェックポイントの作成も無効にします。
INDEX_NAME句はオプションです。索引名を指定しない場合、このプロシージャは、指定されたユーザーのすべてのHNSW索引に対するチェックポイント機能を無効にします。
構文:
DBMS_VECTOR.DISABLE_CHECKPOINT('INDEX_USER',['INDEX_NAME']);
例1: 索引名および索引ユーザーの使用:
DBMS_VECTOR.DISABLE_CHECKPOINT('VECTOR_USER','VIDX1');
例2: 索引ユーザーの使用:
DBMS_VECTOR.DISABLE_CHECKPOINT('VECTOR_USER');
INDEX_VECTOR_MEMORY_ADVISOR
用途: 特定のベクトル索引に必要なベクトル・メモリーのサイズを判断します。これにより、シミュレートされた各ベクトル・メモリー・サイズに適合する索引(HNSWまたはIVF)の数を評価できます。
構文:
-
ベクトル索引に格納するベクトルの次元の数およびタイプを使用する場合:
DBMS_VECTOR.INDEX_VECTOR_MEMORY_ADVISOR( INDEX_TYPE, NUM_VECTORS, DIM_COUNT, DIM_TYPE, PARAMETER_JSON, RESPONSE_JSON);
-
ベクトル索引を作成する表列およびベクトル列を使用する場合:
DBMS_VECTOR.INDEX_VECTOR_MEMORY_ADVISOR( TABLE_OWNER, TABLE_NAME, COLUMN_NAME, INDEX_TYPE, PARAMETER_JSON, RESPONSE_JSON);
INDEX_TYPE
は、次のいずれかです:
-
IVF
: IVFベクトル索引の場合 -
HNSW
: HNSWベクトル索引の場合
PARAMETER_JSON
には、次のいずれかの形式のみを指定できます:
-
PARAMETER_JSON=>{"accuracy":value}
-
INDEX_TYPE=>IVF, parameter_json=>{"neighbor_partitions":value}
-
INDEX_TYPE=>HNSW, parameter_json=>{"neighbors":value}
ノート:
neighbor_partitions
またはneighbors
とともにaccuracy
の値を指定することはできません。
例1: パラメータ・リストでの近傍の使用:
exec DBMS_VECTOR.INDEX_VECTOR_MEMORY_ADVISOR(
INDEX_TYPE=>'HNSW',
NUM_VECTORS=>10000,
DIM_COUNT=>768,
DIM_TYPE=>'FLOAT32',
PARAMETER_JSON=>'{"neighbors":128}',
RESPONSE_JSON=>:response_json);
Suggested vector memory pool size: 59918628 Bytes
例2: パラメータ・リストでの精度の使用:
exec 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);
Suggested vector memory pool size: 53926765 Bytes
例3: ベクトル索引を作成する表列およびベクトル列を使用する場合:
exec DBMS_VECTOR.INDEX_VECTOR_MEMORY_ADVISOR(
'VECTOR_USER',
'VECTAB',
'DATA_VECTOR',
'HNSW',
RESPONSE_JSON=>:response_json);
Using default accuracy: 90%
Suggested vector memory pool size: 76396251 Bytes
関連トピック
親トピック: ベクトル索引の様々なカテゴリの管理