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 | インデックスのすべてのパーティションにわたるベクトル分布。 次のフィールドに分布が表示されます。 
 注: K 平均法クラスタリング アルゴリズムの固有の特性により、インデックスの初期作成時であっても、パーティション間でベクトルの分散に常に一定のばらつきが生じます。 | 
指標に基づくチューニングの推奨事項
- ミューテーション
- insertcount、- updatecount、- deletecountの指標を組み合わせると、インデックスのベクトルの変更またはミューテーションを確認できます。
- インデックスは、特定の数のベクトルとパーティションを使用して作成されます。ベクトル インデックスに対して挿入、更新、削除などのオペレーションが実行されると、ベクトルが存在する最初のパーティション セットにのみ影響します。そのため、各パーティション内のベクトル数は時間とともに変動し、再現率、QPS、またはその両方に影響する可能性があります。
- ANN 検索クエリで、時間の経過とともに QPS の低下や低い再現率などの速度や精度の問題が発生した場合は、これらの指標を確認することを検討してください。ベクトルの合計数に対してミューテーションの数が多い場合は、インデックスの再作成が必要になる可能性があります。
- 分布
- distribution指標は、すべてのパーティションにわたるベクトル分布を示します。
- インデックスを作成すると、特定の数のベクトルと固定パーティションを使用して作成されます。パーティショニング プロセスとその後の分布は、この考慮事項に基づいて行われます。ベクトルが追加されると、既存のパーティションにパーティショニングされるため、インデックスの作成時とは異なる分布になります。最終的な分布ではすべてのベクトルが同時に考慮されないため、再現率、QPS、またはその両方に影響する可能性があります。
- 応答時間が長くなる、結果の精度が低下する(QPS または再現率で測定)など、ANN 検索クエリのパフォーマンスが徐々に低下している場合は、この指標を確認してインデックスを再作成することを検討してください。