ベクトル インデックス指標

このページでは、AlloyDB Omni で生成するベクトル インデックスに関連する指標の一覧を示します。これらの指標は、alloydb_scann 拡張機能をインストールすると利用できる pg_stat_ann_indexes ビューを使用して表示できます。

指標の表示の詳細については、ベクトル インデックスの指標を表示するをご覧ください。

ユーザビリティ指標

ユーザビリティ指標には、インデックス構成やインデックス スキャン数など、インデックス使用率の状態を把握する際に役立つ指標が含まれています。

指標名 データ型 説明
relid OID ベクトル インデックスを含むテーブルの固有識別子
indexrelid OID ベクトル インデックスの固有識別子
schemaname NAME インデックスを所有するスキーマの名前
relname NAME インデックスを含むテーブルの名前
indexrelname NAME インデックスの名前
indextype NAME インデックスの種類。この値は常に alloydb_scann に設定されます。
indexconfig TEXT[] インデックスの作成時に定義された、リーフ数や量子化などの構成
indexsize TEXT インデックスのサイズ
indexscan BIGINT インデックスで開始されたインデックス スキャンの数

チューニング指標

チューニング指標を使用すると、現在のインデックスの最適化に関する分析情報を取得し、推奨事項を適用してクエリのパフォーマンスを向上させることができます。

指標名 データ型 説明
insertcount BIGINT インデックスに対する挿入オペレーションの数。この指標には、インデックスの作成前に存在していた行数も含まれます。
updatecount BIGINT インデックスに対する更新オペレーションの数。この指標には HOT アップデートは含まれません。
deletecount BIGINT インデックスに対する削除オペレーションの数。
distribution JSONB インデックスのすべてのパーティションにわたるベクトル分布。

次のフィールドに分布が表示されます。
  • maximum (INT8): すべてのパーティションにわたるベクトルの最大数。
  • minimum (INT8): すべてのパーティションにわたるベクトルの最小数。
  • average (FLOAT) : すべてのパーティションの平均ベクトル数。
  • outliers (INT8[]): すべてのパーティションの上位外れ値。この値は、上位 20 個の外れ値を示します。

注: K 平均法クラスタリング アルゴリズムの固有の特性により、インデックスの初期作成時であっても、パーティション間でベクトルの分布に常に一定のばらつきが生じます。

指標に基づくチューニングの推奨事項

ミューテーション
insertcountupdatecountdeletecount の指標を組み合わせると、インデックスのベクトルの変更またはミューテーションを確認できます。
インデックスは、特定の数のベクトルとパーティションを使用して作成されます。ベクトル インデックスに対して挿入、更新、削除などのオペレーションが実行されると、ベクトルが存在する最初のパーティション セットにのみ影響します。そのため、各パーティション内のベクトル数は時間とともに変動し、再現率、QPS、またはその両方に影響する可能性があります。
ANN 検索クエリで、時間の経過とともに QPS の低下や低い再現率などの速度や精度の問題が発生した場合は、これらの指標を確認することを検討してください。ベクトルの合計数に対してミューテーションの数が多い場合は、インデックスの再作成が必要になる可能性があります。
分布
distribution 指標は、すべてのパーティションにわたるベクトル分布を示します。
インデックスを作成すると、特定の数のベクトルと固定パーティションを使用して作成されます。パーティショニング プロセスとその後の分布は、この考慮事項に基づいて行われます。ベクトルが追加されると、既存のパーティションにパーティショニングされるため、インデックスの作成時とは異なる分布になります。最終的な分布ではすべてのベクトルが同時に考慮されないため、再現率、QPS、またはその両方に影響する可能性があります。
応答時間が長くなる、結果の精度が低下する(QPS または再現率で測定)など、ANN 検索クエリのパフォーマンスが徐々に低下している場合は、この指標を確認してインデックスを再作成することを検討してください。