pg_stat_ann_indexes disponibile quando installi l'estensione alloydb_scann.
Per saperne di più sulla visualizzazione delle metriche, consulta Visualizza le metriche dell'indice vettoriale.
Metriche di usabilità
Le metriche di usabilità includono metriche che ti aiutano a comprendere lo stato di utilizzo degli indici, come la configurazione degli indici e il numero di scansioni degli indici.
| Nome metrica | Tipo di dati | Descrizione |
|---|---|---|
relid |
OID |
Identificatore univoco della tabella che contiene l'indice vettoriale |
indexrelid |
OID |
Identificatore univoco dell'indice vettoriale |
schemaname |
NAME |
Nome dello schema proprietario dell'indice |
relname |
NAME |
Nome della tabella che contiene l'indice |
indexrelname |
NAME |
Nome dell'indice |
indextype |
NAME |
Tipo di indice. Questo valore è sempre impostato su alloydb_scann |
indexconfig |
TEXT[] |
Configurazione, ad esempio il numero di foglie e il quantizzatore, definita per l'indice al momento della creazione |
indexsize |
TEXT |
Dimensioni dell'indice |
indexscan |
BIGINT |
Numero di scansioni dell'indice avviate sull'indice |
partitioncount |
BIGINT |
Numero di partizioni (nodi foglia) nell'albero. |
Metriche di ottimizzazione
Le metriche di ottimizzazione forniscono insight sull'ottimizzazione attuale dell'indice, consentendoti di applicare i suggerimenti per velocizzare le prestazioni delle query.
| Nome metrica | Tipo di dati | Descrizione |
|---|---|---|
insertcount |
BIGINT |
Numero di operazioni di inserimento nell'indice. Questa metrica include anche il numero di righe esistenti prima della creazione dell'indice. |
updatecount |
BIGINT |
Numero di operazioni di aggiornamento sull'indice. Questa metrica non tiene conto di eventuali aggiornamenti HOT. |
deletecount |
BIGINT |
Numero di operazioni di eliminazione sull'indice. |
distribution |
JSONB |
Distribuzioni dei vettori in tutte le partizioni per l'indice. I seguenti campi mostrano la distribuzione:
Nota: a causa delle caratteristiche intrinseche dell'algoritmo di clustering k-means, ci sarà sempre un certo grado di varianza nella distribuzione dei vettori tra le partizioni, anche quando l'indice viene creato inizialmente. |
Suggerimento di ottimizzazione basato sulle metriche
- Mutazione
- Le metriche
insertcount,updatecountedeletecountmostrano insieme le modifiche o le mutazioni nel vettore per l'indice. - L'indice viene creato con un numero specifico di vettori e partizioni. Quando sull'indice vettoriale vengono eseguite operazioni come inserimento, aggiornamento o eliminazione, queste interessano solo l'insieme iniziale di partizioni in cui si trovano i vettori. Di conseguenza, il numero di vettori in ogni partizione varia nel tempo, il che potrebbe influire sul recall, sulle QPS o su entrambi.
- Se nel tempo riscontri problemi di lentezza o accuratezza, come QPS basse o un richiamo scarso, nelle query di ricerca ANN, ti consigliamo di esaminare queste metriche. Un numero elevato di mutazioni rispetto al numero totale di vettori potrebbe indicare la necessità di una reindicizzazione.
- Distribuzione
- La metrica
distributionmostra le distribuzioni dei vettori in tutte le partizioni. - Quando crei un indice, questo viene creato con un numero specifico di vettori e partizioni fisse. Il processo di partizionamento e la successiva distribuzione avvengono in base a questa considerazione. Se vengono aggiunti altri vettori, questi vengono suddivisi tra le partizioni esistenti, il che comporta una distribuzione diversa rispetto a quella al momento della creazione dell'indice. Poiché la distribuzione finale non considera tutti i vettori contemporaneamente, il richiamo, le QPS o entrambi potrebbero essere interessati.
- Se noti un calo graduale delle prestazioni delle query di ricerca ANN, ad esempio tempi di risposta più lenti o una minore accuratezza dei risultati (misurata in QPS o richiamo), ti consigliamo di controllare questa metrica e di eseguire nuovamente l'indicizzazione.